爬取斗鱼房间号信息

您所在的位置:网站首页 直播真实在线人数 爬取斗鱼房间号信息

爬取斗鱼房间号信息

#爬取斗鱼房间号信息| 来源: 网络整理| 查看: 265

早就对斗鱼等直播平台的观看人数好奇,今天进来爬取以下斗鱼到底有多少人观看,目前是新冠状病毒时期,看直播的人数应该不会太少,也希望各位保护好自己和自己的家人,祝身体健康。话不多说直接上过程:

第一步构想 使用xpath获取信息

打开谷歌,进入到斗鱼TV的直播页面 在这里插入图片描述 F12 调处谷歌检查窗口,右击页面查看网页源代码,搜索页面中的关键字,如搜索,脑力直播间(图片没显示全),结果如下: 在这里插入图片描述 代表是可以通过xpath进行提取数据的。

这里我们使用第二种方式进行爬取,抓包

点击NetWork窗口,进行抓包,当我们选择第二页时,发现数据包 在这里插入图片描述 抓取到请求: 在这里插入图片描述 发现正好是我们需要用到的数据,请求如下 在这里插入图片描述 那么第一页的数据是不是将后面的2改成1就行了啊,意境尝试,果然如此,如此一来就简单了。下面直接贴出我所有代码,供大家参考。如对xpath提取有兴趣可留言,我到时候再进行补充。

from pprint import pprint import requests import json import time from openpyxl import Workbook # 要求 保存每个直播间的房间号 标题 直播类别 主播 观看人数等信息至Excel表格 最后打印出 在斗鱼直播中 在线观看总人数 class DouYuInfo(): ol_person = 0 # 在线观看人数 page = 1 # 当前页 def __init__(self): self.wb = Workbook() self.ws = self.wb.active self.ws["A1"] = "主播" self.ws["B1"] = "标题" self.ws["C1"] = "房间号" self.ws["D1"] = "直播类别" self.ws["E1"] = "观看人数" self.ws["F1"] = "观看链接" self.ws["G1"] = "主播头像" self.headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36' } self.douyu_url = "https://www.douyu.com/gapi/rkc/directory/0_0/{}" def get_response(self): """获取响应""" res = requests.get(self.douyu_url.format(DouYuInfo.page), headers=self.headers) if res.status_code == 200: content = res.content.decode() return content else: print("数据已经请求完毕") return def get_room_list(self,content): """获取房间号信息""" data = json.loads(content) room_list = data["data"]["rl"] return room_list def save_msg(self,room_list): for room in room_list: print("正在保存信息:") pprint(room) self.ws.append( [room["nn"], room["rn"], room["rid"], room["c2name"], room["ol"], "https://www.douyu.com" + room["url"], room["rs16"][:-4:]]) DouYuInfo.ol_person += int(room["ol"]) def run_rever(self): while True: con = self.get_response() room_list = self.get_room_list(con) self.save_msg(room_list) DouYuInfo.page += 1 print("总人数:%s" % DouYuInfo.ol_person) self.wb.save("斗鱼直播信息.xlsx") time.sleep(1) def __del__(self): print("总人数:%s"%DouYuInfo.ol_person) self.wb.save("斗鱼直播信息.xlsx") if __name__ == '__main__': douyu = DouYuInfo() douyu.run_rever()

最后数据我没有爬取完,因为到后面一些小主播基本没人看,人数基本没啥增加,总结果为: 在这里插入图片描述 总共只爬取了一万多条信息: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3