标签:page row css_ 访问 问题 sleep range com search
def scroll_to_bottom(driver): # 页面滚动到底部
js = "return action=document.body.scrollHeight" # 获取当前页面的高度
# 初始化现在滚动条所在高度为0
height = 0
# 当前窗口总高度
new_height = driver.execute_script(js)
while height < new_height: # 直到滚动到页面最底部,高度不在增加
# 将滚动条调整至页面底部
for i in range(height, new_height, 200):
driver.execute_script(‘window.scrollTo(0, {})‘.format(i))
time.sleep(0.5)
height = new_height # 滚动完成后,跟新现在的高度。
# time.sleep(random.random())
new_height = driver.execute_script(js) # 重新获取页面高度
def index_page(page):
‘‘‘抓取索引页 :param page: 页码‘‘‘
try:
print(‘正在爬取第‘, page, ‘页‘)
url = ‘https://search.suning.com/%s/‘%(quote(KEYWORD))
url = ‘https://search.suning.com/%s/&iy=0&isNoResult=0&cp=%d‘%(quote(KEYWORD), page)
browser.get(url) # 请求网址
#等待条件:显示当前页号,显式商品
# wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR, ‘#mainsrp-pager li.item.active > span‘), str(page)))
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ‘#nextPage‘))) # 等待,直到出现下一页的按钮
scroll_to_bottom(browser) # 页面滚动到底部,拿到完整的页面信息
time.sleep(3)
get_products(page) # 对完整的页面信息进行数据解析
except TimeoutException:
index_page(page)
网页源码中数据存在,使用selenum却解析不到数据的一种解决方法。
标签:page row css_ 访问 问题 sleep range com search
原文地址:https://www.cnblogs.com/wangxiaowu/p/13143704.html