B站2千万视频信息爬虫
发布日期:2022-03-18 18:19:14 浏览次数:6 分类:技术文章

本文共 918 字,大约阅读时间需要 3 分钟。

此文首发于我的个人博客:


声明

  • 代码、教程均为本人原创,且仅限于学习交流,请勿用于任何商业用途!

数据结果在最下面。

准备工作

我使用的是Python3,数据库用的是Python自带的sqlite,使用requests库爬取。

安装需要的库

pip install requests

直接刷新视频页面来获取视频信息太慢,通过api地址能快速获取视频信息。

如:https://api.bilibili.com/x/web-interface/archive/stat?aid=19801429,
在浏览器中打开这个页面,可以获取json格式的数据:

{
"code":0, "message":"0", "ttl":1, "data":{
"aid":19801429, "view":583, "danmaku":4, "reply":2, "favorite":378, "coin":6, "share":6, "now_rank":0, "his_rank":0, "no_reprint":0, "copyright":2}}

使用requests库获取数据,用concurrent.futures的多线程来加快爬取的速度,我采用的是32线程爬取。

数据获取

B站对爬虫采取的是一旦发现,就封ip半小时到1天不等的时间。

但是如果使用代理,爬取总共数量1900万(在2018年2月24,B站视频av号已经到2000万了)个视频信息需要花费很多时间。
幸运的我发现我的服务器爬取B站视频信息不会被封ip,于是我就把爬虫放到服务器上跑了整整5天,获得了1300万条有效数据。数据库文件有300M,GitHub无法上传,

数据处理

我使用的是SQLite Studio进行数据库操作

查询播放量前十的视频

查询收藏数前十的视频

aid号与播放量关系

可以从下图看出,随aid号的增加,视频的平均播放量在变少,爆款视频也在变少。

我认为主要原因是B站UP主变多,把许多大的UP主的粉丝分流了部分。
画图代码见
爬虫代码见

GitHub项目地址:

转载地址:https://zhang0peter.blog.csdn.net/article/details/83419311 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:qu.la网站上的小说爬取
下一篇:解决selenium报错--unknown error: DevToolsActivePort file doesn‘t exist

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月03日 05时46分28秒