常用网站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。

  • 数据库 存储:对于存储大量数据,可以选择 mysqlMongoDB,根据数据结构选择合适的存储方案。

  • API 逆向:对于网易云音乐 等需要调用私有 API 的平台,可以通过逆向工程 JS代码,提取密钥,实现数据爬取。

  • 工具 与 库

    • requests:用于发送 HTTP 请求,处理网页响应。
    • BeautifulSoup:用于解析 HTML 数据,提取特定标签内的内容。
    • js-beautify:用于解析混淆后的 JavaScript 代码。
    • Selenium:用于在浏览器中执行 JavaScript 代码,解决混淆问题。

    通过以上方法,可以轻松实现 B 站 和 网易云音乐 数据的爬取。对于更多技术细节,可以参考相关文档和开源项目。

    上一篇:【db】mongodb的故事
    下一篇:效率的提高

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月14日 05时41分04秒