本帖最后由 1kuzus 于 2023-12-15 23:18 编辑
帖子正文即github readme复制下来的文本,部分格式不支持
直接去Github上看↓
Github - 逆向iiiLab接口的Bilibili视频爬虫
BilibiliSpider-iiiLab调用iiiLab接口的Bilibili视频爬虫 简介程序返回视频资源的url链接,并提供可选的下载至本地路径功能。如果只希望解析少数视频,也可以直接用浏览器访问其网站。 注意此接口每天访问次数有上限,大批量操作请考虑ip代理。
环境
pip install requests
pip install pyexecjs
文件说明- iiilab.py - 爬虫主程序
- /crypto-js - npm库crypto-js
- tool.js - 逆向的源站js脚本
- demo.py - 演示程序
快速开始下载仓库并完成环境配置后,在iiilab.py同目录下创建demo.py(此名称任意),复制入以下内容: from iiilab import get_video
url="https://www.bilibili.com/video/BV1bg4y137R6"
title,resource_url,cover_url=get_video(video_link=url)
print("视频标题:", title)
print("资源链接:", resource_url)
print("封面链接:", cover_url)
会得到输出: 视频标题: I'm happy cat
资源链接:https://upos-sz-mirrorcos.bilivi ... 6989703c8&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&bw=99190&orderid=0,3&buvid=&build=0&mobi_app=&f=T_0_0&logo=80000000 封面链接:http://i1.hdslb.com/bfs/archive/7ee99eec4e96b910b1de57b57105be143127de77.jpg
接口说明
1.get_videoget_video不含异常处理,源代码可读性高。如果执行过程中遇到异常会中断。 - 只获取链接: 只传入video_link即可。返回三元组(视频标题,资源链接,封面链接)
title,resource_url,cover_url=get_video(video_link=url)
- 下载到本地: 需要传入download_path。(这种调用方式仍然会返回三元组)
get_video(video_link=url,download_path="demo.mp4")
会得到输出: 正在下载:https://upos-sz-mirrorali.bilivi ... a944584d7&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&bvc=vod&nettype=0&f=h_0_0&bw=48018&logo=80000000
视频保存至 demo.mp4 (937.86328125 KB)
注意:使用相对路径会保存在同目录下,也可以指定为绝对路径。
2.get_video_safeget_video_safe加入了异常处理(捕获除网络请求外的错误)和可选的输出debug信息。 title,resource_url,cover_url=get_video_safe(video_link=url)
get_video_safe(video_link=url,download_path="demo.mp4")
- 调试: get_video_safe可以传入参数debug=True来查看具体的执行流程,便于理解代码功能或调试。
title,resource_url,cover_url=get_video_safe(video_link=url,debug=True)
会得到输出:
-----网络请求----- 加密结果enc_link:MC4xODA2NDY2MTc1gNSdzMxkHNnJWMWJ0LvVGZpZ3Lt92YukGbpJWaslmYuc3d39yL6MHc0RHa==@7236226370821279@76544 加密结果Accept-Patch:9H17mWO/Nl3UEDIEl7FEIq8DSkxAnwoNdbtbambT/0E8qjyI85k4W0obJoi+RFuL 网络请求响应code: 200 -----读取响应----- 接口响应code: 200 接口响应msg: None 接口响应data:ndaeqIaUjsvkKyml9BDI6IychV2cyVmdvJCIs0VficGcq5yN3UGZ3ITMzQTMlJWNwEzN1I2N1UGZxIGMxkjY2kTZ0MWZllTOlV2NvUmdph2YyF2LzZmYv02bj5iYsNHZo5SMp9yL6AHd0hmIgojIsJXdfdXZpZXZyBnIgwiIwADMwADMwgTPvd2bsZCOxADO00zdiZCMfBzXo1jZmATPlBXe0RXZuZCZvZXPjZnYm0mcvZGdhxGcsQWatxCZpJHdsk2bsM3bs4WZnxSZulGbkFWZkxyci5GLrBXa1xSZ9MXbhJXYwVnJ3MjY2EWYiFGO2gTO3kDNmNWY2gjZ4YmMlJWN3IjN5YWPnl2cwVnJ1wWb0hWPtJ3bmRXYsBnJw0DZp1mJoBTYjVTMjR2N5UWMzgDOlFmMiVDNiFjY5UWMlJjN5UWY9QWayRnJxAzM3IjN3ETPp9mJ2JWasFWPz9mJyYHbyVXehxGc94WZnZSM1ADO0kDMwcTM9UmbpxGZhVGZmETPzJmbmUTPrBXa1ZSPNNkTzUTY0x2XqRVWlpUcmhDWrZHM4R1UzVkbWZjR1wEOF5WRUhXdFZlc5EnZi5keJpUcChzQOZnTvhmVkdHaWR2VoxGZ3hmVkdHaWJlYONmTyJTTahXdlhzZp1TZ/QDct5iNx0SMtQjN1ETN2IzNwEzL0YTNxUjNycDMx8SNx8CN28SZk92Y4N2ZwV3Lt92Yu8WZklmdpxWai5SasFmcvJncp1WL6NXLz9Gc19yL6MHc0RHaiAiOiwmc19VZjJXdvNXZyJCIsIyblRWa2JCI6ISZwlHdfFWakVWbis3WgojIzFWakVWbiACLiQXYjBSewBXYoBSbnkkIgojI0hXZ0Jye
|