【python】虎牙直播爬虫项目
虎牙直播爬虫项目:
#导入selenium相关的工具
from selenium import webdriver
from lxml import etree
class Huya(object):
#初始化
def __init__ (self):
#通过浏览器加载网页
self.driver = webdriver.PhantomJS()
#要统计的数据
self.room_count = 0 #房间数量
self.audience_count = 0 #房间观众数量
#执行爬虫
def run(self):
#打开网页
self.driver.get(\'https://www.huya.com/l\')
#爬取相关的数据
content = etree.HTML(self.driver.page_source) #获取并解析网页的源码
#获取房间信息
rooms = content.xpath(\'.//ul[@id="js-live-list"]/li\')
for room in rooms:
#获取房间名称
roomname = \'\'
tmp = room.xpath(\'./a[contains(@class,"title")]/text()\')
if len(tmp) > 0:
roomname = tmp[0]
#获取房间人气
audience = \'\'
tmp = room.xpath(\'//span[@class="num"]/i[@class="js-num"]/text()\')
if len(tmp) > 0:
audience = tmp[0]
print(\'房间观众:%s,房间名称: %s\' % (audience, roomname))
#增加房间数
self.room_count += 1
#增加观众数
if audience[-1] == \'万\':
audience = audience[0:-1] #2.2万 -- 2.2
audience = int(float(audience) * 10000)
self.audience_count += audience
else:
self.audience_count += int(audience)
#输出结果
print(\'当前直播间数量: %d\' % self.room_count)
print(\'当前观众数量: %d\' % self.audience_count)
def test(self):
#打开网页
self.driver.get(\'https://www.huya.com/l\')
#循环遍历每一页
page = 0
while True:
import time
time.sleep(2)
page += 1
#查找class
ret = self.driver.page_source.find(\'laypage_next\')
if ret > 0:
print(\'第%d页\' % page)
else:
print(\'最后一页\')
break
#点击下一页按钮
self.driver.find_element_by_class_name(\'laypage_next\').click()
if __name__ == \'__main__\':
huya = Huya()
huya.run()
#huya.test()
运行结果:(截取部分)
房间观众:19.7万,房间名称: 湖北声优第一仙女中单
房间观众:48.2万,房间名称: v:带粉无敌~!
房间观众:48.1万,房间名称: G神~世界第一狙
房间观众:38.2万,房间名称: 今晚8:00才艺大比拼/招优质主持
房间观众:23.6万,房间名称: 第861集,简单唱歌
房间观众:19.3万,房间名称: 单排锐雯峡谷之巅今天宗师崽
房间观众:47.9万,房间名称: 30人生化千分下单上号乱秀
房间观众:47.1万,房间名称: 宇宙级吕布单排轻松101
房间观众:37.5万,房间名称: 派活13-公爵王Y33
房间观众:22.7万,房间名称: 是你的心动女孩嘛~
房间观众:16.9万,房间名称: 南通王者妹妹 电一~ 一起玩
当前直播间数量: 120
当前观众数量: 96177000
版权声明:本文为helenlee01原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。