python怎么爬取b站_【Python爬虫实例学习篇】——4、超详细爬取bilibili视频

本文介绍如何使用Python爬取B站视频,包括分析网页抓包数据,解析JSON获取视频链接,使用requests库处理OPTIONS和GET请求,以及合并视频和音频。通过Fiddler抓包获取视频分片链接,并利用ffmpeg进行视频音频合并。
摘要由CSDN通过智能技术生成

【Python爬虫实例学习篇】——4、超详细爬取bilibili视频

由于经常在B站上学习,但无奈于家里网络太差,在线观看卡顿严重,于是萌生了下载视频的想法(如果只是单纯想下载视频,请用you-get库)。废话不多说直接开干。

(我发现好像很多人在爬bilibili视频的时候都有用到某个API然后还需要一个cid参数,这些在本文中没有用到。。。。)(另外再说明一下,第3篇文章没有通过审核,要看的话去公众号哈哈)

使用工具

python3.6

requests库

lxml库(xpath解析)

json库(解析json数据获取下载链接)

ffmpeg(合并视频和音频)

目录

1、确定视频资源地址

(1) 用Chrome随便打开一个视频,==Ctrl+Shift+C==选择视频框尝试获取视频的链接。结果发现获取的链接地址为:blob:https://www.bilibili.com/1987... ,这是一个blob加密的链接,不能直接访问。

(2) 网上查找资料后,这篇文章给了我灵感,思路:对网页抓包,抓取到视频分片的链接,再利用所抓到的链接信息进行定位。

(4) 对这部分json代码进行解析(完整json数据太大,请自行去B站找到对应位置观看),可以发现:

==quality==参数是指视频清晰度,112为高清1080p+、80为高清1080p、64为高清、32为清晰、16为流畅。

==duration==参数是指视频长度,单位为秒。

==frameRate==参数为帧率。

==SegmentBase==参数应该是视频片初始片大小和片基址范围,单位为字节。

==deadline==参数是在url里的参数,指示了链接失效的时间戳。

{

"code": 0,

"message": "0",

"ttl": 1,

"data": {

"from": "local",

"result": "suee",

"message": "",

"quality": 64,

"format": "flv720",

"timelength": 1504366,

"accept_format": "flv720,flv480,flv360",

"accept_description": [

"高清 720P",

"清晰 480P",

"流畅 360P"

],

"accept_quality": [

64,

32,

16

],

"video_codecid": 7,

"seek_param": "start",

"seek_type": "offset",

"dash": {

"duration": 1505,

"minBufferTime": 1.5,

"min_buffer_time": 1.5,

"video": [

{

"id": 64,

"baseUrl": "http://upos-sz-mirrorkodo.bilivideo.com/upgcxcode/03/88/98958803/98958803-1-30064.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1579449043&gen=playurl&os=kodobv&oi=1971869914&trid=9412dee30c4640c6907ef910ea2cb04cu&platform=pc&upsig=4b952dd652c9922b546b99e44756fe0a&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=352741151",

"base_url": "http://upos-sz-mirrorkodo.bilivideo.com/upgcxcode/03/88/98958803/98958803-1-30064.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1579449043&gen=playurl&os=kodobv&oi=1971869914&trid=9412dee30c4640c6907ef910ea2cb04cu&platform=pc&upsig=4b952dd652c9922b546b99e44756fe0a&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=352741151",

"backupUrl": [

"http://upos-sz-mirrorks3.bilivideo.com/upgcxcode/03/88/98958803/98958803-1-30064.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1579449043&gen=playurl&os=ks3bv&oi=1971869914&trid=9412dee30c4640c6907ef910ea2cb04cu&platform=pc&upsig=62448ee8270504e8e729d25fc402dc7f&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=352741151"

],

"backup_url": [

"http://upos-sz-mirrorks3.bilivideo.com/upgcxcode/03/88/98958803/98958803-1-30064.m4s?e=ig8euxZM2rNcNbdlhoNvNC

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值