摘要:上次学会了批量下载视频,但画质太糊?今天教你如何通过配置 Cookie,给你的爬虫发一张“大会员通行证”。
正文:
在上一篇教程中,我们写出了一个非常好用的 B 站多 P 视频批量下载器。但由于我们是“免登录”状态抓取,服务器只会给我们分配 480P 或 720P 的基础画质。
想要 1080P 高清画质?核心思路其实非常简单:向 B 站证明“你是谁”。
今天,我们将通过提取浏览器中的 Cookie,为我们的爬虫注入灵魂,轻松突破风控拦截,解锁 1080P 下载权限!
如何获取完整的 Cookie
当你在浏览器中登录 B 站后,服务器会给你发放一段由超长字符组成的“身份证”,也就是 Cookie。爬虫带上它,就能享受你当前账号的全部特权(普通用户 1080P,大会员甚至能拿更高码率)。
获取步骤(重点,一步都别错):
在浏览器(Chrome 或 Edge)打开你要下载的 B 站视频页面,确保已登录。
按键盘上的 F12,打开“开发者工具”。
点击顶部的 “网络” (Network) 选项卡。
按 F5 刷新一下当前网页!(必须刷新才会抓包)。
在左侧抓包列表中,点击最顶部的一条记录。
在右侧面板往下滚,找到 “请求标头” (Request Headers)。
在里面找到 Cookie:,把后面那一串长长长长长的字符全部复制下来!
拿到 Cookie 后,我们只需要对上一篇的代码做极其微小的一处改动。 找到代码顶部的 headers 字典,将你刚刚复制的长串 Cookie 粘进去:
import osimport reimport subprocessimport requests# 目标视频URLvideo_url = "https://www.bilibili.com/video/BV1ujL3zKEyd/"# 【核心修改点】填入你的 SESSDATA 即可解锁 1080P 高清画质# 注意:SESSDATA 相当于你的账号登录凭证,请千万不要发给别人!headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "Referer": "https://www.bilibili.com", "Origin": "https://www.bilibili.com", "Cookie": "SESSDATA=RMObUqhz5Yo6yZPM7r_FuJZD0TXIt2inf7fjjPPGZsIHIUACVug4MZGs5Dp0SVjRucTlWcmFoaHZOMF9haThLSUxRcnFoRnlFSzlGY0Z4b1dJNFdMMUlwaUF1VVM0OWZzYk1nN3ltQkc0Y1M2X25oR2lFMEhQY2Y4bzVjdFBHQ2trbHlnIIEC; bili_jct=7e2c8f699bc00ed8b33ef2c260288f07; DedeUserID=3546716938701480; DedeUserID__ckMd5=4888deef58f7c83c; theme-tip-show=SHOWED; CURRENT_QUALITY=64; bp_t_offset_3546716938701480=1203361325653164032; bmg_af_switch=1; bmg_src_def_domain=i0.hdslb.com; theme-avatar-tip-show=SHOWED; CURRENT_FNVAL=4048; sid=fylrzp54; b_lsid=C3F07C39_19E35E98AF5;" }
为什么加上 Cookie 就能拿到 1080P?在我们的代码逻辑中,我们提取视频流时写了这样一句代码:res['data']['dash']['video'][0]['baseUrl']
末尾的 [0] 意思是“永远拿 B 站返回的第一个视频流”。 由于 B 站接口返回的视频流是按画质从高到低排列的,有了 Cookie 的加持,服务器返回的第一个链接,自然就是高清的 1080P 啦!避坑与安全指南
防盗链拦截(报错 JSONDecodeError):如果你发现填了 Cookie 还是报错,99% 是因为 Cookie 没复制全。千万不要只复制 SESSDATA,一定要把 F12 网络请求里的整段 Cookie 一字不落地复制下来。
Cookie 会过期吗? 会的。通常有效期是几个月。如果你几个月后再运行脚本发现报错,重新登录 B 站再抓一次 Cookie 替换上去即可。
隐私警告! Cookie 相当于你的 B 站账号登录凭证。这串代码请务必只在本地自己使用,绝对不要把带了你 Cookie 的代码发给别人,更不要上传到公开的 Github 仓库,以免造成账号被盗用哦!
💡 结语
到这里,你已经完全掌握了 B 站视频下载的硬核流程:从 API 解析、防盗链突破,到 FFmpeg 无损合并。这套代码稍加修改,甚至可以成为你未来自动化学习、素材收集的超级利器。
快去试试 1080P 的下载快感吧!(温馨提示:1080P 体积较大,下载合并需要一点耐心哦~)