naphth / Bilibilidownloader2

Bilibilidownloader的升级版,大幅度提速,支持爬取B站视频、用户动态、评论、弹幕,想怎么爬就怎么爬

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bilibilidownloader2 by Yixiao Lan

欢迎使用Bilibili下载器2!历时一年后,我们重新开始设计了Bilibili下载器,取消了对you_get的依赖,批量爬取,大幅度提升了速度,并重新设计了数据模型,支持爬取视频及其附加信息、弹幕、评论、用户动态、关注、被关注、相册和收藏夹并添加到sqlite数据库中,爱怎么爬怎么爬。 欢迎fork、star支持!

功能介绍

在worker.py脚本中有两个强大的类,Green类可以爬取一个up的所有动态信息、相册、收藏夹、视频索引、关注与被关注信息,并添加到指定的数据库中,再使用该类中的run方法,便可以遍历爬取所有视频本体和附加信息; Blue类是一个仅用于不断爬取用户数据和用户关系的类,可以爬取每个用户的动态信息、相册、收藏夹、视频索引信息,并能够在关注列表中发现新的用户,进而建立起一个庞大的用户信息和用户关系网络,可以制作数据集、推荐系统以及搞科研用。

准备工作

pip依赖库

requests tqdm

系统依赖插件

ffmpeg (需添加至环境变量,macos、linux使用brew、apt、yum等工具均可直接安装,windows下安装方法自行百度)

使用方法

这里只讲强大的Green类

看到worker.py,实例化一个Green类,传入数据库路径(没有数据库的话会自动创建)、up的视频路径、up的相册的路径(没有皆会自动创建),即可初始化完成。

调用find_ups([up主mid, ])即可获取一个up主的态、相册、收藏夹、视频索引、关注与被关注信息,并添加到sqlite数据库中。

在调用run()方法,即可按照视频索引信息按顺序爬取up主的视频与附加信息到指定目录中。

详细用例可以在文件中的main函数中找到。

Enjoy it~

项目架构

这个就不花笔墨描述了,有能力的同学可以自行理解。

更新日志

20210804:为BlueSystem卸载了几个次级下载组件,更节省流量

20210805:新增Green类的命令行功能,修改了README

20210807:修改了api的异常返回bug,对不同异常和错误状态码进行了捕获和判断

20210812:进一步提高了Findauthor的鲁棒性,提高异常捕获概率

20210814:进N步提高了Findauthor的鲁棒性,加入了熔断机制来防止系统识别爬虫后拦截请求,熔断后某些次级爬取组件在一定时间内处于休眠状态

TODO

当系统封禁ip时自动切换内网ip地址。

About

Bilibilidownloader的升级版,大幅度提速,支持爬取B站视频、用户动态、评论、弹幕,想怎么爬就怎么爬


Languages

Language:Python 100.0%