Python爬取网易云音乐、评论、歌词数据
时间: 2025-03-26 07:05:56 浏览: 43
### 使用Python爬取网易云音乐的评论和歌词
为了实现这一目标,需要构建一个能够处理网页请求、解析响应内容以及可能涉及加密过程的应用程序。下面将介绍具体方法。
#### 准备工作
确保安装了必要的库,如`requests`用于发起网络请求;`re`模块中的正则表达式功能可用于解析HTML文档获取所需链接与信息[^1]。对于更复杂的交互操作,则需引入`selenium`这样的自动化测试框架来模拟浏览器行为完成登录验证等动作[^4]。
#### 获取评论数据
通过向特定API接口发送GET请求可获得指定歌曲下的全部用户评价列表。通常情况下,这类API会接受参数如歌单ID(`playlistId`)或歌曲ID(`trackId`)作为查询条件之一,并允许设定分页大小及当前页码以便于遍历多条评论记录。需要注意的是部分网站可能会对其公开服务端口实施访问频率限制措施,因此建议合理设置延时机制防止触发反爬策略。
```python
import json
import requests
def fetch_comments(track_id, page=1, limit=20):
url = "https://music.163.com/api/v1/resource/comments/R_SO_4_{}/?offset={}&limit={}".format(
track_id, (page - 1)*limit, limit)
headers = {
'User-Agent': 'Mozilla/5.0'
}
response = requests.get(url=url, headers=headers).json()
comments = []
if not isinstance(response, dict) or 'comments' not in response.keys():
return None
for item in response['comments']:
comment_info = {}
comment_info["content"] = item["content"]
comment_info["likedCount"] = item["likedCount"]
comment_info["time"] = item["time"]
comments.append(comment_info)
return comments
```
此函数定义了一个名为`fetch_comments()`的方法接收三个形参——歌曲唯一标识符(`track_id`)、期望读取哪一页的内容(`page`)以及每页显示多少条目(`limit`)。内部构造出完整的RESTful风格URL地址并通过调用`requests.get()`执行实际抓取任务最终返回由字典组成的列表对象表示各条评论详情[^2]。
#### 下载歌词文本
针对某首曲目的LRC格式歌词文件同样可以通过类似的手段取得。一般而言,只要掌握了正确的资源路径模式就能轻松定位到对应的目标位置进而下载保存至本地磁盘上。
```python
from pathlib import Path
def download_lyric(song_name, lyric_url):
path = "./lyrics/"
file_path = "{}{}.lrc".format(path, song_name.replace("/", ""))
try:
resp = requests.get(lyric_url)
with open(file_path, mode='w', encoding="utf-8") as f:
f.write(resp.text)
print(f"{song_name}.lrc 已成功保存")
except Exception as e:
print(e)
if __name__ == '__main__':
# 假设已知一首歌的名字叫 test 和它的 lrc 文件 URL 地址
name = "test"
link = "http://example.com/test.lrc"
p = Path("./lyrics/")
if not p.exists():
p.mkdir(parents=True)
download_lyric(name, link)
```
上述脚本展示了怎样创建目录结构存储所获歌词副本的同时也提供了异常捕获逻辑保障程序稳定性。值得注意的是这里假设已经知道了确切的`.lrc`文件在线存放地点,实际情况中往往还需要进一步挖掘才能得到准确的结果。
阅读全文
相关推荐















