今天小编给大家分享一下怎么用Python爬取b站小视频的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
成都创新互联专业提供成都主机托管四川主机托管成都服务器托管四川服务器托管,支持按月付款!我们的承诺:贵族品质、平民价格,机房位于中国电信/网通/移动机房,西部信息机房服务有保障!
b 站小视频地址:
http://vc.bilibili.com/p/eden/rank#/?tab=全部
我爬取了每日的小视频排行榜,学会了每日的,爬取本周、本月的就非常简单了,改个标签就行,稍后详细分析会讲到。以下是爬取结果。
项目环境
语言:Python3
工具:Pycharm
程序结构
主要由 3 部分组成:
get_json():提取目标网页的 json 数据信息。
downloader():下载小视频并显示下载进度。
主函数:循环下载视频直到下载完毕。
代码分析
观察下方参数的变化,发现只有 next_offset 这个字段在变,每次都比前一个多 10。
这就好办了,我们把参数部分单独拿出来,把可变的 next_offset 写成变量,返回目标网页的 json 数据。
接下来,我把小视频下载下来,为了美观,我做了个下载器,显示下载速度。效果如下。
此处有个地方需注意下,请求目标网页时必须带上此网页的 headers 信息,网站做了反爬操作,否则下载下来的视频是空的,部分代码如下。(ps:大家运行代码时把 headers 换成自己浏览器在本网页的 headers 即可)
主函数中为了提取更多视频,我们把 next_offset 这个变量做个循坏,然后从 json 数据中提取视频的标题和可下载的链接。观察下页面的 json 数据结构就可以轻松获取文章标题和下载链接数据。
为了防止有些视频没有提供下载链接的情况,我加了异常处理,细心的朋友应该发现了文章前面给的效果图只有84个视频,原因就在此。最后,为了防止 ip 被封,设置了随机等待时间。其实,总体下来,不到 5 分钟,100 个视频可以全部下载完毕。
以上就是“怎么用Python爬取b站小视频”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。
网站名称:怎么用Python爬取b站小视频
标题路径:http://scgulin.cn/article/ijpoed.html