
常用网站URL规划分析
发布日期:2021-05-07 18:04:28
浏览次数:25
分类:精选文章
本文共 2336 字,大约阅读时间需要 7 分钟。
爬取 B 站 和 网易云音乐 数据 指南
B 站 数据 爬取
1. B 站 外挂字幕 爬取
B 站 的外挂字幕通常位于视频页面的脚本部分。可以通过 requests
库发送 GET 请求,获取视频页面的 HTML 内容。然后,提取 <script>
标签内的特定变量。
import requestsurl = "https://www.bilibili.com/video/BV1t7411z7ko?from=search"response = requests.get(url)script_content = response.text.find('window.__INITIAL_STATE__="{"performance":')subtitle_url = script_content.find('"subtitle_url":"http://i0.hdslb.com/bfs/subtitle/8f14fe24ea2d3e916a96981eb04c64e66c01ddbf.json"')subtitle_response = requests.get(subtitle_url)subtitle_path = subtitle_response.json()['subtitle_url']
2. 爬取 UP 主 信息
B 站 UP 主信息可以通过分析 UP 主页面的 HTML 内容提取。UP 主 ID 可以通过 URL 中的 mid
参数获取。
import requestsfrom bs4 import BeautifulSoupurl = "https://space.bilibili.com/7"response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')up_name = soup.find('div', class_='user-info').h1.text
3. 爬取 弹幕
B 站 弹幕 API 提供了直接爬取弹幕的方法。可以通过以下 URL 获取弹幕列表:
import requestsurl = "https://api.bilibili.com/x/v1/dm/list.so?oid=122426590"response = requests.get(url)弹幕内容 = response.json()['data']['list']
4. 获取 弹幕 发送者 信息
弹幕发送者信息可以通过分析弹幕中的 from_uid
参数提取。需要注意的是,B 站 对 from_uid
的哈希值进行了加密,可以通过反向工程或工具解析。
import binasciihash_value = "11ec39b9"for i in range(1, 100000000): if binascii.crc32(str(i).encode("utf-8")) == hash_value: print(i)
网易云音乐 数据 爬取
1. 用户 信息
网易云音乐 的用户信息可以通过分析用户页面的 HTML 内容提取。
import requestsfrom bs4 import BeautifulSoupurl = "https://music.163.com/#/user/home?id=29879272"response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')user_info = soup.find('div', class_='user-info').h1.text
2. 音乐 信息
网易云音乐 的音乐信息可以通过分析歌曲页面的 HTML 内容提取。需要注意的是,网易云音乐 的 JavaScript 代码经过了混淆,提取数据较为复杂。
import requestsimport jsonurl = "https://music.163.com/#/song?id=65766"response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')song_info = soup.find('div', class_='song-info').h1.text
技术 要点
防爬策略:B 站 对未登录的请求有限制,可以通过代理 IP 模拟多个用户同时爬取,减少对服务器的压力。
数据 解析:对于视频页面的脚本数据,可以使用 BeautifulSoup
或自定义解析工具提取特定变量。
性能 优化:在爬取大量数据时,可以通过分页请求减少对服务器的负载,避免被封 IP。
数据库 存储:对于存储大量数据,可以选择 mysql
或 MongoDB
,根据数据结构选择合适的存储方案。
API 逆向:对于网易云音乐 等需要调用私有 API 的平台,可以通过逆向工程 JS代码,提取密钥,实现数据爬取。
工具 与 库
- requests:用于发送 HTTP 请求,处理网页响应。
- BeautifulSoup:用于解析 HTML 数据,提取特定标签内的内容。
- js-beautify:用于解析混淆后的 JavaScript 代码。
- Selenium:用于在浏览器中执行 JavaScript 代码,解决混淆问题。
通过以上方法,可以轻松实现 B 站 和 网易云音乐 数据的爬取。对于更多技术细节,可以参考相关文档和开源项目。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月14日 05时41分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2021-04-05阅读小笔记:局部性原理
2019-03-05
将Java编译为本地代码
2019-03-05
go语言简单介绍,增强了解
2019-03-05
2.1 Kubernetes--Pod
2019-03-05
python file文件操作--内置对象open
2019-03-05
ERP/MIS开发 LLBL Gen多表操作
2019-03-05
Remove function
2019-03-05
在没实践机会的前提下,如何跨越级别
2019-03-05
从面试官角度告诉大家如何准备项目方面的描述
2019-03-05
架构师入门:搭建基本的Eureka架构(从项目里抽取)
2019-03-05
Java核心技术及面试指南 流程控制方面的面试题答案
2019-03-05
MongoDB 快速扫盲贴
2019-03-05
修复搜狗、360等浏览器不识别SameSite=None 引起的单点登录故障
2019-03-05
明天要早起,今天不博了。
2019-03-05
2017/08/21 工作日志
2019-03-05
EXTJS4.2——10.Tab+Iframe
2019-03-05
EXTJS4.2——3.1 添加文本框
2019-03-05
WEB基础——AJAX
2019-03-05
one + two = 3
2019-03-05