# -*- coding: utf-8 -*-
# @date: 2018\11\16 15:19
# @Author : huangtao!!
# @FileName: 直播.py
# @Software: PyCharm
# @Blog :https://blog.csdn.net/Programmer_huangtao
from selenium import webdriver
#加入模拟浏览器的库
from time import sleep
#睡眠时间
driver = webdriver.Chrome()
#定义浏览器方法
url = 'http://www.huya.com/g/2793'
#访问的请求url
driver.get(url) #或者是这样driver.get('http://www.huya.com/g/2793')
#把要访问的url放到driver方法里面
num = 1
#可加可不加,加个页码看的清楚点
while True:
#加个判断因为,访问的是虎牙直播网页,有一个结束,或者是构造url列表依次放入列表也行,但是不确定最后的url,所以还是这样比较好
print('第'+str(num)+"页----------------------------------------------------------------")
#加个页码
num +=1
#页码递加
sleep(2)
#加个睡眠时间,因为你的模拟浏览器开的速度,有可能数据还没有加载完,可能数据找不到就会报错;或者直接自己有re,lxml解析
html = driver.page_source
#得到html网页
names = driver.find_elements_by_xpath('//i[@class="nick"]')
#使用selenium的寻找元素的方法,然后这里面自带re,或者xpath,直接按方法找就行了
counts = driver.find_elements_by_xpath('//i[@class="js-num"]')
for name,count in zip(names,counts):
#循环遍历name(主播),count(观看人数)
print(name.text,':', count.text)
#打印,但是你找到的是元素,还得.text,才是要找的数据
if driver.page_source.find('laypage_next')!=-1:
#判断访问的url是否结束,一页最后还有没有下一页,通过寻找下一页的<a>标签
driver.find_element_by_xpath('//a[@class="laypage_next"]').click()
#如果找到下一页的<a>标签,就点击.click()
else:
#如果没有程序结束
break