简单记录一下,这是我做的第一个数据分析项目:虎牙最火的直播类别,哪些主播的人气最高,从爬虫爬取到数据分析,中间琢磨了三天左右,收获很大,很有成就感,小小啰嗦一下。
先声明一下,这个项目借鉴了以下文章的代码(因为我是爬虫新手,还有很多不懂):
https://blog.csdn.net/litao0942051021/article/details/86663921
原文章研究的是:斗鱼网站上最火的直播类别,哪些主播的人气最高,而我照猫画虎,研究了虎牙相应的情况。在最开始的时候我以为单纯地copy代码,就可以用这个通用爬虫爬取其他网站信息,我错了,就这一步就琢磨了两天。接下来我来具体讲讲整个过程以及注意事项。
①查看网页信息
这里面原来有大学问,我通过对比斗鱼跟虎牙的不同来说明。
先看斗鱼,打开斗鱼直播首页(是直播首页不是首页,直播首页才能一页一页地翻):https://www.douyu.com/directory/all,按F12,查看网页信息-查看Network请求。
我们在这里重点关注XHR文件,为什么呢?因为我们要爬的房间信息存在XHR文件,那到底是哪一个呢?我们可以通过翻页,然后点随意一个XHR文件,点Preview查看具体信息。我们发现,所有的房间信息都存在下图的名为“1”、“2”(也就是页码的XHR文件)。
然后我们点Headers,查看Request URL,通过观察可以知道:第一页的Request URL是:https://www.douyu.com/gapi/rkc/directory/0_0/1,第二页的Request URL是:https://www.douyu.com/gapi/rkc/directory/0_0/2,链接最后的数字正好对应页码,利用这个规律可以一次爬取大量数据。所谓的Request URL,里面存储的内容就是在网站不完全加载的情况下也可以获取的网站信息。
那么现在来看虎牙直播,它跟斗鱼又有什么不同呢?
虎牙不像斗鱼一样,储存信息的文件直接以页码命名,经过一番查找,原来藏在这个叫cache.php?m=LiveList…的文件中,现在来看一下它的Headers-Request URL有没有跟斗鱼一样的规律。
有的哈哈,说明在这里也可以一次性连续爬大量房间信息。接下来我们关注一下我们要爬的信息,点Preview,下图红框内的信息就是我们想要的,分别为直播分类、主播名、房间号、房间名和在线人数。
②爬取数据
万事俱备,只欠东风。上面就是爬取数据之前的准备工作,废话不多说,接下来直接上代码。
from urllib
import request
import re