回答

收藏

免费资源分享 - 逆向iiiLab接口的Bilibili视频爬虫

信息分享 信息分享 308 人阅读 | 0 人回复 | 2023-12-01

本帖最后由 1kuzus 于 2023-12-15 23:18 编辑

帖子正文即github readme复制下来的文本,部分格式不支持
直接去Github上看↓
Github - 逆向iiiLab接口的Bilibili视频爬虫


BilibiliSpider-iiiLab
调用iiiLab接口的Bilibili视频爬虫
简介
本程序是对iiiLab视频解析网站的/media接口的轻量级利用,不依赖selenium。
程序返回视频资源的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_video
get_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_safe
get_video_safe加入了异常处理(捕获除网络请求外的错误)和可选的输出debug信息。
  • 基本使用: 使用方法与get_video相同。
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




分享到:
回复

使用道具 举报