本文来源于:乐聚机器人王松博士《用Python获取B站播放历史记录》
最近 B 站出了一个年度报告,统计用户一年当中在 B 站上观看视频的总时长和总个数。过去一年我居然在 B 站上看了 2600+ 个视频,总计 251 个小时,居然花了这么多时间,吓得我差点把 Bilibili App 卸载了...
(, 下载次数: 274) 上传 点击文件名下载附件 然而我又很好奇,到底我在 B 站上都看了些什么类型 小姐姐 的视频,用几行 Python 代码实现了一下。获取请求 Api 接口与 Cookie实现起来非常容易,获取 cookie 模拟请求即可1. 使用 chrome 浏览器2. 登陆 B 站,进入历史记录 https://www.bilibili.com/account/history3. 在网页任意位置,鼠标右键 检查 (, 下载次数: 277) 上传 点击文件名下载附件 4. 按照下图所示,进入 Network 页面,筛选框输入 history,对结果进行筛选,页面滚轮往下即可看到浏览过程中的历史记录请求的 Header (, 下载次数: 328) 上传 点击文件名下载附件 5. 将 Header 下, cookie 一行的字符串复制出来到一个 cookie.txt 文本里 (, 下载次数: 324) 上传 点击文件名下载附件 Python 代码实现伪造浏览器请求 (, 下载次数: 276) 上传 点击文件名下载附件 (, 下载次数: 322) 上传 点击文件名下载附件 使用 cookie 模拟请求 (, 下载次数: 256) 上传 点击文件名下载附件 代码非常简单,完整代码在 https://github.com/wangshub/bilibili-history存在的问题本来想拿到所有的播放记录,做一些统计和预测,但是经过实测,B 站只能获取到最近 1000 条或者最近 3 个月的播放记录如果想获得更多,只能做一个监测程序,不停地从接口获取数据安全问题尽量不要使用不安全的 wifi 网络,有可能会被别有用心之人获取网络请求的Package,易泄露个人隐私。 欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) Powered by Discuz! X3.4
然而我又很好奇,到底我在 B 站上都看了些什么类型 小姐姐 的视频,用几行 Python 代码实现了一下。
获取请求 Api 接口与 Cookie
实现起来非常容易,获取 cookie 模拟请求即可
1. 使用 chrome 浏览器
2. 登陆 B 站,进入历史记录 https://www.bilibili.com/account/history
3. 在网页任意位置,鼠标右键 检查
(, 下载次数: 277) 上传 点击文件名下载附件 4. 按照下图所示,进入 Network 页面,筛选框输入 history,对结果进行筛选,页面滚轮往下即可看到浏览过程中的历史记录请求的 Header (, 下载次数: 328) 上传 点击文件名下载附件 5. 将 Header 下, cookie 一行的字符串复制出来到一个 cookie.txt 文本里 (, 下载次数: 324) 上传 点击文件名下载附件 Python 代码实现伪造浏览器请求 (, 下载次数: 276) 上传 点击文件名下载附件 (, 下载次数: 322) 上传 点击文件名下载附件 使用 cookie 模拟请求 (, 下载次数: 256) 上传 点击文件名下载附件 代码非常简单,完整代码在 https://github.com/wangshub/bilibili-history存在的问题本来想拿到所有的播放记录,做一些统计和预测,但是经过实测,B 站只能获取到最近 1000 条或者最近 3 个月的播放记录如果想获得更多,只能做一个监测程序,不停地从接口获取数据安全问题尽量不要使用不安全的 wifi 网络,有可能会被别有用心之人获取网络请求的Package,易泄露个人隐私。 欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) Powered by Discuz! X3.4
4. 按照下图所示,进入 Network 页面,筛选框输入 history,对结果进行筛选,页面滚轮往下即可看到浏览过程中的历史记录请求的 Header
(, 下载次数: 328) 上传 点击文件名下载附件 5. 将 Header 下, cookie 一行的字符串复制出来到一个 cookie.txt 文本里 (, 下载次数: 324) 上传 点击文件名下载附件 Python 代码实现伪造浏览器请求 (, 下载次数: 276) 上传 点击文件名下载附件 (, 下载次数: 322) 上传 点击文件名下载附件 使用 cookie 模拟请求 (, 下载次数: 256) 上传 点击文件名下载附件 代码非常简单,完整代码在 https://github.com/wangshub/bilibili-history存在的问题本来想拿到所有的播放记录,做一些统计和预测,但是经过实测,B 站只能获取到最近 1000 条或者最近 3 个月的播放记录如果想获得更多,只能做一个监测程序,不停地从接口获取数据安全问题尽量不要使用不安全的 wifi 网络,有可能会被别有用心之人获取网络请求的Package,易泄露个人隐私。 欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) Powered by Discuz! X3.4
5. 将 Header 下, cookie 一行的字符串复制出来到一个 cookie.txt 文本里
(, 下载次数: 324) 上传 点击文件名下载附件 Python 代码实现伪造浏览器请求 (, 下载次数: 276) 上传 点击文件名下载附件 (, 下载次数: 322) 上传 点击文件名下载附件 使用 cookie 模拟请求 (, 下载次数: 256) 上传 点击文件名下载附件 代码非常简单,完整代码在 https://github.com/wangshub/bilibili-history存在的问题本来想拿到所有的播放记录,做一些统计和预测,但是经过实测,B 站只能获取到最近 1000 条或者最近 3 个月的播放记录如果想获得更多,只能做一个监测程序,不停地从接口获取数据安全问题尽量不要使用不安全的 wifi 网络,有可能会被别有用心之人获取网络请求的Package,易泄露个人隐私。 欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) Powered by Discuz! X3.4
Python 代码实现
伪造浏览器请求
(, 下载次数: 276) 上传 点击文件名下载附件 (, 下载次数: 322) 上传 点击文件名下载附件 使用 cookie 模拟请求 (, 下载次数: 256) 上传 点击文件名下载附件 代码非常简单,完整代码在 https://github.com/wangshub/bilibili-history存在的问题本来想拿到所有的播放记录,做一些统计和预测,但是经过实测,B 站只能获取到最近 1000 条或者最近 3 个月的播放记录如果想获得更多,只能做一个监测程序,不停地从接口获取数据安全问题尽量不要使用不安全的 wifi 网络,有可能会被别有用心之人获取网络请求的Package,易泄露个人隐私。 欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) Powered by Discuz! X3.4
(, 下载次数: 322) 上传 点击文件名下载附件 使用 cookie 模拟请求 (, 下载次数: 256) 上传 点击文件名下载附件 代码非常简单,完整代码在 https://github.com/wangshub/bilibili-history存在的问题本来想拿到所有的播放记录,做一些统计和预测,但是经过实测,B 站只能获取到最近 1000 条或者最近 3 个月的播放记录如果想获得更多,只能做一个监测程序,不停地从接口获取数据安全问题尽量不要使用不安全的 wifi 网络,有可能会被别有用心之人获取网络请求的Package,易泄露个人隐私。 欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) Powered by Discuz! X3.4
使用 cookie 模拟请求
(, 下载次数: 256) 上传 点击文件名下载附件 代码非常简单,完整代码在 https://github.com/wangshub/bilibili-history存在的问题本来想拿到所有的播放记录,做一些统计和预测,但是经过实测,B 站只能获取到最近 1000 条或者最近 3 个月的播放记录如果想获得更多,只能做一个监测程序,不停地从接口获取数据安全问题尽量不要使用不安全的 wifi 网络,有可能会被别有用心之人获取网络请求的Package,易泄露个人隐私。 欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) Powered by Discuz! X3.4
代码非常简单,完整代码在 https://github.com/wangshub/bilibili-history
存在的问题
本来想拿到所有的播放记录,做一些统计和预测,但是经过实测,B 站只能获取到最近 1000 条或者最近 3 个月的播放记录
如果想获得更多,只能做一个监测程序,不停地从接口获取数据
安全问题
尽量不要使用不安全的 wifi 网络,有可能会被别有用心之人获取网络请求的Package,易泄露个人隐私。