项目场景:
使用selenium获取虎牙直播的标题和人气值,代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
url = "https://www.huya.com/g/lol"
driver.get(url)
num = 1
while True:
print('第{}页------------------------'.format(str(num)))
num += 1
# time.sleep(3)
html = driver.page_source
names = driver.find_elements_by_xpath('//a[@class="title"]')
counts = driver.find_elements_by_xpath('//i[@class="js-num"]')
for name,count in zip(names,counts):
print(name.text,":",count.text)
break
driver.find_element_by_xpath('//a[@class="laypage_next"]').click()
ps:这里为求直观,只显示了每页第一个主播的标题和人气值,大家如果想要打印全部信息,把break删掉即可
运行结果:
运行部分结果如下:
第1页------------------------
【萝莉酱】认真上分! : 72.0万
第2页------------------------
黑色玫瑰你的声优慕呀来一起玩呀 : 8.5万
第3页------------------------
大乱斗新主播~黑色一起玩 : 5.4万
第4页------------------------
国服最强千珏:血瓶帮打 : 4.5万
第5页------------------------
新人主播,有车位,新粉丝订阅上车带飞! : 4.1万
第6页------------------------
重庆声甜妹妹~艾欧尼亚有车位~ : 3.8万
希望能帮到大家
注意事项:
如果在运行代码时报错了,可能是网速过快导致网页还没加载出来就进行了下一步的判断
解决方法就是加入time.sleep(),让浏览器等几秒
ps:这行代码一定要放在 html = driver.page_source 之前,如果放在html = driver.page_source 后面,已经拿到了代码,sleep就没有意义了。
希望这篇文章能帮到大家