关键词:
翻页 XHR JSON
思路:
用chrome F12开发者功能,查看翻页时Network的内容,确定爬虫翻页的实现方法
过程:
1.分析跳转的内容
chrome打开https://www.douyu.com/g_LOL
F12打开开发者功能,查看network的XHR
然后在页面上点击第二页跳转,继续查看network的XHR,发现一个名叫2的页面
我们直接在浏览器中打开https://www.douyu.com/gapi/rkc/directory/2_1/2
发现是一个json的文件,那么我们再打开
https://www.douyu.com/gapi/rkc/directory/2_1/1
内容也是json
里面返回的是第一页的各个主播直播间的内容,包括主播的url,name以及分类。
翻到最后
pgnct应该是总页数。
- 分析
我们现在可以通过https://www.douyu.com/gapi/rkc/directory/2_1/1已经总页数循环获得英雄联盟分类所有的主播信息,怎么获得其他的分类下的内容呢。本来英雄联盟的网址应该是 g_LOL,这里用的是2_1,有没有办法找到对应信息呢?
我们换一个分类看看,绝地求生这个分类,用同样的方法查看,得到的网址是https://www.douyu.com/gapi/rkc/directory/2_270/2。Dota2,https://www.douyu.com/gapi/rkc/directory/2_3/2。
那么大概可以知道,不同分类对应不同的https://www.douyu.com/gapi/rkc/directory/2_x/pageNumber。
3.方案
从1和2得到的内容,我们可以放弃从每个分类的主页去获取主播信息了,用https://www.douyu.com/gapi/rkc/directory/2_x/pageNumber来直接获取信息,直接拿到json内容进行分析,效率更高。