Python哔哩哔哩视频爬取

时间:2024-01-28 18:06:25

一、找到想要爬取的视频,进入网页源代码

  在网页源代码里面可以很容易的找到视频各种清晰度的源地址

  

 

二、对地址发送请求

   如果对视频源地址发送get请求会返回403

  通过按F12进入开发者工具分析

  发现并不能直接对源地址发送get请求,必须先要发送一次option请求

  

三、再次对源地址发送请求

  通过对option请求方式含义的了解,可以知道作用是检测服务器所支持的请求方法

  

 

 

   但是不要急着继续发送get请求,通过开发者工具可以发现网页请求资源时,返回的状态码并不是200,而是206

  http/206响应的含义具体可参考:https://www.cnblogs.com/simonbaker/p/5190675.html

   所以我们在使用get请求源地址时,要加上两个重要的请求头,如下图:

  

 

   range的值经过测试,可以为空,如:range:bytes=

 

  一般情况下,请求头不加range也能请求到数据,但是在测试中,某些视频如果不加range,会出现数据请求不到的情况,导致程序一直运行,一般加上range更为稳妥

 

  至此,哔哩哔哩视频已经可以爬取了,至于哔哩哔哩把视频与音频分开请求,我们只需要按照请求视频的方式将音频的请求地址替换过去即可

 

  切记,请求时注意保存文件的后缀名

 

  转载请注明出处,谢谢