某站视频爬取案例学习

B站视频爬取

F12 分析视频地址的request请求

在这里插入图片描述
音频文件的名字中带有 30280. 视频文件的名字中带有 30074.

音频与视频的文件爬取做法类似,一下以音频为例。

  1. 先从respond的回应中分析数据:
  • Content-Length: 920 表示当前音频长度位920
  • Content-Range: bytes 0-919/8033565 表示此视频时从0-919byte的数据,整个音频长 8033565byte
  1. 在从request中分析如何构造请求可以去得到完整的音频
    在这里插入图片描述

从上图中可看到一个关键的信息:Range bytes=0-919
联系到respond的信息,于是我们知道了如果要对完整音频或是视频的文件进行请求下载,必须先取得完整文件的大小,然后对request中的range参数写成 bytes=0-[文件大小] 于是就可以得到音频或是视频的完整的文件。

例:用postman构造请求:
在这里插入图片描述
即可得到音频文件
在这里插入图片描述

我们不可能让普通用户从f12中去获取音频/视频的真实url,所以我们只能对网页进行解析找到视频/音频的url以及参数。

2020/1/3 参考了一些博主写的内容

https://blog.csdn.net/ucsheep/article/details/102529604

1.先从如下格式发起请求 av***** 根据番号替换
在这里插入图片描述
请求命令之后返回html,在64行位置有
在这里插入图片描述
黄色荧光部分,即得到该视频的真实url地址。
然后再构造对视频的request
Header:

Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Origin: https://www.bilibili.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
Accept: */*
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Referer: https://www.bilibili.com/video/av79983573
Accept-Encoding: identity
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Range: bytes=0-1691202

即可得到视频,(Header中的Range:bytes=0-{视频最大字节长度},测试视频太长,只设置到了1691202字节,即截取了3分钟左右)
在这里插入图片描述


但是有问题!

用其他视频测试发现了现在不知道哪里出了问题。

例如发起请求:https://m.bilibili.com/video/av37576684.html?from=search
在60行的位置,找到可视频url的地址:
在这里插入图片描述
然后进行构造request,获得视频:
Header:

accept: */*
accept-encoding: identity
accept-language: zh-CN,zh;q=0.9,en;q=0.8
cache-control: no-cache
origin: https://www.bilibili.com
pragma: no-cache
range: bytes=0-1400548
referer: https://www.bilibili.com/video/av37576684?from=search&seid=8862775960448215557
sec-fetch-mode: cors
sec-fetch-site: cross-site
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36

在这里插入图片描述
接下来就出了问题;
在这里插入图片描述
返回的是一大串乱码!
然后在想是否是url地址不对??我直接从f12调试中找30080的m4s文件:

在这里插入图片描述
对比发现地址没有错!Header直接用f12调试中的,也没有用!!
在这里插入图片描述
查看视频m4s 的返回中发现有存在数据!!

我又试了另一个视频:
https://m.bilibili.com/video/av81033483.html?from=search
在这里插入图片描述
也出现了同样的问题!!!
但是从f12调试中找到视频m4s文件却与上图中找到地址不同!!
在这里插入图片描述
而后者地址可以爬取到整个视频!
在这里插入图片描述
两个地址不同在与

http://upos-sz-mirrorkodo.bilivideo.com/upgcxcode/66/19/66051966/66051966-1-30080.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1578058980&gen=playurl&os=kodobv&oi=3740505668&trid=bfaa97b6eab349aeb11f4478d95df55au&platform=pc&upsig=7149657656c4692d5b8ea84b157ed092&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,platform&mid=77651841

https://cn-hbxy-dx-v-01.bilivideo.com/upgcxcode/40/89/138688940/138688940_nb2-1-30080.m4s?expires=1578060000&platform=pc&ssig=HSiQjZQwUmwh4BVjrgipgw&oi=3740505668&trid=e44c2ff59750471cbe06ef5aca7fd551u&nfc=1&nfb=maPYqpoel5MI3qOUX6YpRA==&mid=77651841

主机地址和参数不同

我也不知道问题出在哪里??额,在查查看吧

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值