使用selenium,time爬取虎牙直播数据

# -*- 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是否结束,一页最后还有没有下一页,通过寻找下一页的标签
        driver.find_element_by_xpath('//a[@class="laypage_next"]').click()
        #如果找到下一页的标签,就点击.click()
    else:
        #如果没有程序结束
        break

 

你可能感兴趣的:(Python的爬虫使用案例,Python的常见库使用,一只网络上的虫(爬虫实例))