Python爬取网易云音乐热歌榜评论
时间: 2023-11-05 13:19:35 浏览: 172
好的,这是一个比较常见的爬虫案例,我可以给你提供一个基本的代码框架,但需要提醒的是,网易云音乐有反爬措施,如果你频繁地爬取数据可能会被封禁IP,所以请合理使用爬虫工具。
首先,你需要安装requests和BeautifulSoup库,可以使用pip命令进行安装。
```python
pip install requests
pip install beautifulsoup4
```
然后,你可以使用下面的代码来爬取网易云音乐热歌榜评论:
```python
import requests
from bs4 import BeautifulSoup
# 设置请求头
headers = {
'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'}
# 获取歌曲ID
def get_music_id():
url = 'https://music.163.com/discover/toplist?id=3778678'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
music_id = soup.select('#song-list-pre-cache ul li a')[0]['href']
return music_id.split('=')[1]
# 获取评论数据
def get_comments():
music_id = get_music_id()
url = f'https://music.163.com/weapi/v1/resource/comments/R_SO_4_{music_id}?csrf_token='
data = {
'params': 'v3NN7cNlbVqjU3s3VH8Q8J2ubwbi+2XQdSvLsZ9VOM2JF8C9F+uLX2zO5S0vC/KyPgOznLWc9jXj7J6zZr6fBm0qzrY+7uZPnQbrI+UWqJbIM2vO7W3JjV9Ri5Jv5sT5mUgGqHh+XyB4uh0zvGh9ZJ8yL4Yx/5RxE0KfGJjFtUwLrUqH6PQeGKvTfcTcXAAeX',
'encSecKey': '3c2a73e4d9c3f4b7f43e5d285b329f8b796e58f099a21d9e0cb8fb0f8c3b835e0f3c9e73a5b6c7c2c4a2c35a2e7d6b5d4a2c9f8f7d4d6f0a28c1d8a7e9f354d0d3bdcacf3e5a96e8f3ec6b7ba1a0d9f3d9c9f5e7ab6f9c7a3f9c1a9f95e6cbebcf0e6e7e7d1d1f6e4b9a2cb5f9e',
'encText': 'id=3778678&offset=0&total=false&limit=20&csrf_token='
}
response = requests.post(url, headers=headers, data=data)
comments_json = response.json()
comments = [comment['content'] for comment in comments_json['comments']]
return comments
if __name__ == '__main__':
comments = get_comments()
print(comments)
```
代码中,我们首先通过requests库发送请求,使用BeautifulSoup库解析HTML,获取网易云音乐热歌榜的歌曲ID。然后,我们构造POST请求,向指定歌曲的评论API发送请求,获取评论数据。
最后,我们打印出获取到的评论数据。
注意,代码中的data字典中的参数是经过加密的,如果有需要可以使用Fiddler等工具进行抓包分析。另外,获取到的评论数据是JSON格式,我们可以通过json库进行解析。
阅读全文