Skip to main content

关于B站的一个爬虫,可以获取视频的信息,下载视频等

Project description

Bilibili Tools

内容列表

背景

本项目主要是通过爬虫获取Bilibili各种信息,包括个人信息,视频下载,弹幕下载等。具体有多少功能主要取决于我自己有什么需求。但是会尽可能多 的实现各种功能。这些功能并不会以web应用或者GUI等形式出现,更像是以一个可调用的库的形式出现,这样可以很方便的给我自己去构建很多应用。当 然我自己感觉这个项目算是自己对于Python的一个实践吧。学了很多,但是平常写的机会挺少的,好些技巧都已经忘记了,借着这次机会也是重新学习和 巩固(如果不是这次疫情还抽不出这么多时间来写)。最后本项目仅用于学习交流,请勿用于任何商业用途。

已完成

  • 目前所有的代码都是在Windows下完成的,并没有在Linux下进行测试,但是应该没有太大问题。
  • 视频下载(在2020年2月23号B站开始使用BV号而不是AV号,昨天稍微修把项目修改了一下)
  • 视频信息获取(包括点赞数,弹幕等)

安装

首先要确保你的电脑安装了ffmpeg并且设置了环境变量,如果没有,那么请前往它的官网下载。在确保你安装了ffmpeg的情况 下,请在命令行输入如下的命令以此来安装运行该项目所必须的依赖。

pip3 install biget

使用说明

首先导入该模块

from biget import Video

然后给Video类的构造函数传递参数来构建video对象,传入的参数就是视频的bv号

v = Video('BV1fE411F7AF')

在这个情况下v对象有如下的属性:

  • bv:视频的bv号码
  • bv_url:视频地址
  • title:视频标题
  • date:视频发布日期
  • page_list:B站的视频可能一个视频有多个p也就是多集,这里是bv号下所有的视频的信息
  • page_num:集数也就是p的数量
  • data:关于视频的信息,在没有调用access方法之前改返回值为None否则返回值为下面的形式
{
    'bvid': 视频bv号码,
    'aid': 视频对应的av号码,
    'page_num': 同一个bv下p的数量,
    'title': 视频标题,
    'date': 发布日期,
    'owner': up主,
    'owner_id': up主id,
    'view': 观看量,
    'danmaku': 弹幕数量,
    'reply': 评论数,
    'favorite': 收藏数量,
    'coin': 投币数量,
    'share': 转发数量,
    'now_rank': 当前排名,
    'his_rank': 全站排名,
    'like': 点赞数,
    'page': 每一个p的信息,
    'tags': 视频的标签信息,
}
  • bullet_comments: 视频的弹幕内容,在默认情况下为None,在调用了get_bullet方法之后才会有数据。执行之后该对象的bullet_comments会是 一个二维list对象,该对象存的每一个元素是一个bs4.element.Tag对象,要想获取里面的文本信息可以使用.text方法。

对象方法(下面假设类对象是video):

  • download(pages, path='.', cover=True, keep=True, bilingual=True, insert=False)
    • pages:要下载该bv号下管理的哪几集视频,需要传入一个可迭代对象,如果想下载全集可以传入range(video.page_num)。如果你想选择跳跃 的集数,那么请记住,输入的集数要比真实的小1。例如你想要获取第2集,第5集,那么你可以传入[1, 4]。
    • path:下载的路径,默认情况下会在当前如路径下载(下载的视频会在给定路径下创建文件夹,以视频名字命名)
    • cover:当cover为True的时候会如果文件夹里有同名文件会直接覆盖
    • keep:是否保存m4s文件,因为b站直接爬取保存的是m4s,将m4s做处理之后才是我们的最终文件
    • bilingual:为True时,视频在合并字幕的时候会合并两个CC字幕,当然这个的前提是该视频有两个CC字幕(当CC字幕数量大于2的时候就会取前 两个CC字幕),否则只合并一个
    • insert:是否将CC字幕作为内嵌字幕,为True是则是作为内嵌字幕,(如果为True可能会需要比较长的时间处理),该参数为True只有在 bilingual为false的情况下才有效
  • access()
  • get_bullet(pages)
    • pages:因为bv下的每一个视频都有自己的弹幕,所以你可以选择要获取的集数,同download需要传入一个可迭代对象,如果想下载全集则传入 range(video.page_num),如果你想选择跳跃的集数,那么请记住,输入的集数要比真实的小1。例如你想要获取第2集,第5集,那么你可以传入 [1, 4]。

维护者

维护者 邮箱
@ujay-zheng 897013045@qq.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

biget-0.1.0.tar.gz (8.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page