PYTHON爬取斗鱼英雄联盟所有在玩adc的主播房间信息

Python爬取斗鱼英雄联盟所有玩adc的主播房间信息并用redis存储数据

最近想要用巩固下json数据的提取以及数据的存储,于是选了斗鱼作为研究对象。。
下面就是所有要爬取的adc,当然有个别adc没人玩就不爬不了。
在这里插入图片描述
首先观察下虚空之女和赏金猎人这两个英雄的直播页面什么差异。

在这里插入图片描述
在这里插入图片描述
可以发现,两者的url并没有差异,那么就不能从html页面下手了,接下来再看看XHR和json。
在XHR的getTagRoomlist中发现了直播间相关的数据
在这里插入图片描述

然后再观察Headers中的内容
在这里插入图片描述
这是虚空之女的直播间页面url:
https://www.douyu.com/dir_new/getTag2RoomList?tag2_id=247&page=1&cate2_id=1
然后下面是赏金猎人的:
https://www.douyu.com/dir_new/getTag2RoomList?tag2_id=241&page=1&cate2_id=1
可以发现他们仅有tag2_id不同。那么只要获取到这个id的list就能请求相关的数据了。但是观察了一下左边这一栏所有的内容都没有发现和英雄对应的id有关的信息。
折腾了一会发现要重新刷新当前页面才能看到id的信息,也就是不进行任何筛选的情况下才能看到。
所有的tag_id都在第一个url中:https://www.douyu.com/dir_new/getAllTag1withtag2list?cate2_id=1
那么思路就是先请求这个url获取所有的英雄对应的id,然后根据id组建新的url,再各个请求,获取信息。
在这里插入图片描述首先导入必要的包,最后数据存储用redis(最近学的这个,后续还会更mySQL)

import requests
import redis 
base_url = 'https://www.douyu.com/dir_new/getAllTag1withtag2list?cate2_id=1' # 用来请求id的url
room_url = 'https://www.douyu.com/dir_new/getTag2RoomList?tag2_id={}&page=1&cate2_id=1'  #待拼接的url
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'
}

获取英雄的id

def get_id():response = requests.get(base_url, headers=headers)#观察json中的格式结构进行提取info = response.json()['data'][4]['tag2_list']return info

最后返回的就是它,一个list,后面只需要循环提取就ok。
在这里插入图片描述

获取房间信息

def get_room_info(hero_id, hero_name):url = room_url.format(hero_id)response = requests.get(url, headers=headers)#仅提取其中的room_list信息room_info = response.json()['data']['room_list']total_room = []for item in room_info:each_room = dict()each_room['room_id'] = item['rid']  #房间ideach_room['room_name'] = item['rn']  #房间名each_room['room_host'] = item['nn']  #主播each_room['hero_name'] = hero_name  #英雄名称# 把room的信息合并成一个字典total_room.append(each_room)return total_room

主程序

包括函数的调用以及数据的存储

#调用函数获取id
info = get_id()
#调用redis数据库
client = redis.StrictRedis(host='XXX.X.X.X', port='6379')
for item in info:hero_id = item['tag2_id'] #获取英雄idhero_name = item['tag2_name'] #获取英雄名称#调用函数获取room信息hero_room = get_room_info(hero_id, hero_name) #由于某些英雄没有主播在玩,也就没有room信息,所以要判断一下获取的hero_room是否为空if hero_room != '':#由于字典不支持迭代,所以将其转化为list类型再进行迭代hero_room = list(hero_room)for ind, hero in enumerate(hero_room):#作为哈希数据写入redis,每一个直播间作为一个fieldclient.hmset(hero_name+str(ind), {'room_id': hero['room_id'], 'room_name': hero['room_name'], 'room_host': hero['room_host']})

最后测试一下是否导入成功

import redis
client = redis.StrictRedis(host='127.0.0.1', port='6379')
print(client.hget('寒冰射手1', 'room_id'))返回
b'7153773'

Bingo!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/143636.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

photoshopcs6安装包

网上找这个特别麻烦,好多限制,而且你还不一定能装上。我分享个精简版的,实用性强 百度网盘地址: https://pan.baidu.com/s/1vzTHIK8fZg9RamdcikbdSw 提取码:k7d8

Adobe Premiere Pro cs6 精简版 0xc000007b 应用程序无法正常启动

失败方法记录 法1、把Adobe PS CS6 目录.dll文件拷贝,粘贴到Adobe Premiere CS6目录下 信息不对称,失败 法2、下载驱动人生等安装组件 看来驱动人生没有发现倪端,失败! 法3、修改环境变量? 别说了,失败 正…

Photoshop CS5软件安装教程

Photoshop CS5(32/64位)精简版下载地址: 链接:https://pan.baidu.com/s/11T-L-aH3JNXlJmSqL0JY6Q 提取码:ea5j Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图…

ps进阶

若想探究ps更炫酷的技能,请往下读吧。 文章目录 一、滤镜安装及Camera Raw使用二、笔刷安装三、快速制作GTA风格的画报四、3D建模 一、滤镜安装及Camera Raw使用 Adobe Camera Raw是一款编辑RAW文件编辑的强大工具。raw是单反数码相机所生成的RAW格式文件。安装上…

C51精简版教程(AT89C51/STC89C52)

文章目录 第一章:AT89S52(STC89C52)的引脚功能介绍第二章:51的存储器结构(89s52或90C52RC为例)第三章: C51的语法基础第四章:IO口输入输出原理第五章: 内部资源之外部中断第六章:内部…

jre7精简

转自http://blog.csdn.net/xiaoping8411/article/details/6973887 前不久给朋友做了一个桌面程序,程序文件没多大,但运行java程序需要jre,但jre足足有80M多,然后在网上搜了如何给给JRE瘦身或精简JRE,整理如下&#xff…

mysql 2005开发版_Microsoft SQL Server 2005简体中文开发版下载

Microsoft SQL Server 2005 开发版使开发人员能够在32位和X64平台的基础上建立和测试任意一种基于SQL Server 的应用系统。它包括企业版所有功能,但只被授权用于开发和测试系统,不能作为生产服务器。开发版可被升级至SQL Server 企业版以用于生产。 Microsoft 已重新设计了 S…

计算机2级ps真题百度云,【百度盘】Adobe Photoshop 2020 释怀特别版 | 21.2.1.265 | 633MB...

免责声明:本系列软件仅供个人测试使用,不保证软件稳定性,欢迎大家支持和使用正版。 软件修改概况(以下修改内容适用释怀的2018、2020版) -精简运行库及更新组件; -精简创意云Creative Cloud Libraries组件及插件; -精简…

dreamwaver cs6

引用:http://www.aa25.cn/download/954.shtml Adobe dreameaver CS6发布了,官方也放出正式版下载了,建议大家更新到最新版本,因为它给我们提供了更新的功能,比如对html5及css的支持,jqurey的支持等等。 这里提供的官方…

计算机中怎样重新安装ps,什么样的电脑适合安装高版本Photoshop?该如何安装和卸载PS呢?...

由于每一款软件都是在不断升级和完善中,只有这样才能不断的满足实际应用的要求,比如Photoshop这一款软件以及在Photoshop CS6之后改名为Photoshop CC版本,目前最新版已经到Photoshop CC 2019版本,由于就有很多小伙伴想第一时间尝试最新版本的一些新功能和技巧,但是新版本的…

Adobe Photoshop CS3绿色精简版(26M)

Adobe Photoshop CS3官方简体中文版精简优化制作而成 只保留Photoshop组件,精简了其它组件及帮助文件和样本文件 基本上保留了原版Photoshop的全部设计功能 增加了功能强大的eye candy、DCE Tools、xenofex2等滤镜。 无需注册或激活。自解压文件(解压…

java开发ps插件_超强自主开发的Photoshop CS6增强插件 唯一的面板测试版2

超强自主开发的Photoshop CS6增强插件 唯一的面板测试版2 热心网友2012.10.11Photoshop 适用于Photoshop CS6的增强插件下载。具有增强对齐,加入类似CDR的前进后退按钮方便效果查询,CTRLZ方便,CtrlshiftZ就不常用了,所以在微调效果…

win10系统,安装Photoshop_CS6并且无需序列号破解

最近想学习前端,就想着顺便把PS下一下,哪知道居然总是安装失败……以下是安装步骤和破解步骤以及遇到的问题 必看:安装、破解软件全程断网!下载的问题 【这里给一个包含破解补丁的链接http://www.frontopen.com/1181.html】 随便在…

css插件载进去ps里面,CSS3Ps(ps图层插件)官方版

CSS3Ps是一款功能使用的图层转换工具,通过此软件能够帮助我们将图层快速转换为能够在浏览器可以查看的CSS3代码,方便您直接在设计软件中添加相关的设计程序,可以选择多个图层或者一个图层,并通过点击转换实现批量处理功能&#xf…

Photoshop CS6 Extended 特别版特点介绍

Photoshop CS6 Extended 32/64位中文特别版特点: 1:采用官方正式版安装文件APM更新 13.1.2 进行提取制作 2:采用可保留 Extende d功能的破解补丁整合,支持3D功能 3:精简多国语言,帮助文件,多国 …

怎样正确安装Photoshop CS6破解版【图文教程】

PS作为一款强大的图片处理软件,受到了广大电脑爱好者的喜爱,它的版本也在不断的更新中,功能也在不断地完善。现在最新的版本则是CS6,本人也才刚刚更新完毕。更新的过程中遇到了很多问题,相信很多人也会遇到一些同样的问…

Adobe Photoshop CS6 for Mac 简体中文 支持retina高清屏

Adobe Photoshop CS6 for mac是Adobe公司旗下最为出名的图像处理软件之一,集图像扫描、编辑修改、图像制作、广告创意,图像输入与输出于一体的图形图像处理软件。 PS相关滤镜下载: Nik Color Efex Pro for Mac 后期处理 调色滤镜&#xff1a…

虽然我不再年轻,纵然我们都已年华老去。

引子 著名华裔芭蕾舞舞蹈家傅予心女士于旧金山空难中去世,享年五十九岁。 几天后,蔡娅受母亲所托,前往表姑姑傅予心的公寓整理遗物。 傅予心曾是一名出色的舞者,却在事业如日中天时告别舞台,回国定居。蔡娅一直不明所以…

12月18日第壹简报,星期日,农历十一月廿五

12月18日第壹简报,星期日,农历十一月廿五1. 官方:预计我国今年经济总量超过120万亿元,明年经济有望总体回升。2. 多地血库告急,两部门修改“指引”:最后一次新冠核酸或抗原阳性结果7天后可献血。3. 北京&am…