老师就是网页没有爬取完全,程序就结束了,然后我加了隐式等待和调用js,但是网页还是没有爬取完全,是不是我的逻辑方面有错误,爬取时,还会有那个提示弹窗,必须手动点掉才开始爬取,怎么在代码里就给他跳过
from selenium.webdriver.chrome.service import Service
from selenium.webdriver import Chrome
from lxml import etree
from selenium.webdriver.common.by import By
from time import sleep
def spider_huya():
#创建驱动
service=Service('./chromedriver.exe')
#创建浏览器
driver=Chrome(service=service)
#访问网页
driver.get('https://www.huya.com/g/lol')
count=1
while True:
print('获取了第{%d}页' % count)
count +=1
#拖动滚动条到底部
js='document.documentElement.scrollTop=1000'
driver.execute_script(js)
#设置隐式等待
driver.implicitly_wait(20)
#创建etree对象
e=etree.HTML(driver.page_source)
#提取数据
names=e.xpath('//i[@class="nick"]/text()')
persons=e.xpath('//i[@class="js-num"]/text()')
sleep(3)
#打印数据
#for n,p in zip(names,persons):
#print(f'主播名:{n} 人气:{p}')
#获取选项卡,点击
if driver.page_source.find('laypage_next') ==-1:
break
next_btn=driver.find_element(By.XPATH,'//a[@class="laypage_next"]')
next_btn.click()
sleep(3)
driver.quit()
if __name__=='__main__':
spider_huya()
