使用etree库写一个爬取网易云音乐评论的详细代码
时间: 2023-06-19 22:03:04 浏览: 111
xml.rar_xml写一个网站
以下是使用Python的etree库爬取网易云音乐评论的详细代码:
```python
import requests
from lxml import etree
# 歌曲ID
song_id = '1436709404'
# 评论获取数量
limit = '20'
# 评论偏移量
offset = '0'
# 请求头信息
headers = {
'Referer': 'https://music.163.com/song?id=' + song_id,
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 请求评论API
url = 'https://music.163.com/api/v1/resource/comments/R_SO_4_' + song_id + '?limit=' + limit + '&offset=' + offset
# 发送请求
response = requests.get(url, headers=headers)
# 解析JSON数据
data = response.json()
# 获取评论总数
total = data['total']
# 获取热门评论
hot_comments = data['hotComments']
# 循环获取所有评论
while offset < total:
# 发送请求
response = requests.get(url, headers=headers)
# 解析JSON数据
data = response.json()
# 获取所有评论
comments_data = data['comments']
# 循环获取每个评论
for comment in comments_data:
# 获取评论用户昵称
nickname = comment['user']['nickname']
# 获取评论内容
content = comment['content']
# 获取评论点赞数
liked_count = comment['likedCount']
# 输出评论信息
print('用户昵称:', nickname)
print('评论内容:', content)
print('点赞数:', liked_count)
print('-' * 50)
# 偏移到下一页评论
offset += 20
url = 'https://music.163.com/api/v1/resource/comments/R_SO_4_' + song_id + '?limit=' + limit + '&offset=' + str(offset)
```
该代码通过向网易云音乐评论API发送请求并解析JSON数据来获取评论信息,使用了etree库中的XPath语法来解析HTML文档。需要注意的是,这里的代码只能获取到评论的基本信息,如需获取更多数据,需要对API进行更深入的了解。
阅读全文