python爬取b站数据_python爬取B站up主数据(含代码)

爬取网页,一般的做法是先直接向目标页面发起请求,然后返回,查看返回页面是否与目标页面相同,如果不同,则证明这个页面是动态加载页面,需要另寻它法。

所以,我向B站发起了请求:https://space.bilibili.com/105511477

然而,返回的页面完全没有我需要的信息,这说明B站使用了异步加载技术,于是我逐个分析请求url,在https://api.bilibili.com/x/space/acc/info?mid=105511477&jsonp=jsonp这个请求的响应中发现了id号, 姓名,性别, 生日, 等级等数据,但是找不到关注数,粉丝数。继续分析,在https://api.bilibili.com/x/relation/stat?vmid=105511477&jsonp=jsonp&callback=__jp3响应中找到关注数,粉丝数等数据。但是我嫌麻烦,直接在网上找到了将这2个url合并的url:

https://api.bilibili.com/x/web-interface/card?mid=105511477&jsonp=jsonp&article=true

直接发起请求,得到json数据,然后解析json数据就行了。

看下效果吧:python爬取b站数据_python爬取B站up主数据(含代码)_第1张图片

由于B站数据太多,我有编写了进度保存与加载,防止重复爬取。

但是爬取速度是比较慢的,改进的建议:多线程和分布式爬取。

由于数据不全,我没有做后续分析。4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png

仅供学习,请不要持续发起请求,以免造成纠纷。4aa545dccf7de8d4a93c2b2b8e3265ac0a26d216.png

代码百度云盘: https://pan.baidu.com/s/1mBfvlg99nfelQl13WwqEUA 提取码: 7w27

你可能感兴趣的:(python爬取b站数据)