Python实现网易云音乐热评抓取
本文提供一段Python代码,演示如何抓取网易云音乐歌曲的热评。通过构造请求头与参数,利用requests库获取数据,并解析JSON提取用户昵称及评论内容,最终保存至本地文本文件。
以下示例展示了使用Python获取网易云音乐评论的具体实现方法,供读者参考。
import requests
import bs4
import json
def get_hot_comments(res):
comments_json = json.loads(res.text)
hot_comments = comments_json['hotComments']
with open("hotcmments.txt", 'w', encoding = 'utf-8') as f:
for each in hot_comments:
f.write(each['user']['nickname']+':\n')
f.write(each['content']+'\n\n')
f.write("-------------------------------------\n")
def open_url(url):
rname_id = url.split('=')[1]
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
"referer": "http://music.163.com/song?id=4466775&market=baiduqk"}
params = "PWXGrRPQKqZfgF4QTEivQ9eZfrCscY2YtKA60Xw6P6kL6v4J09c/g+PNwzks+mpwUDmjDWvJ0CNfV/Vzeh0iLNIVyWZ+9wezTESdC2/lpPKgcSgFo8au3evlS5OpciLmVG7YGhEFiocZQ/ccGaFdG4WdqStjPDEIoBfzeGZJZIsixW0SG4zVhBrfgKTi0i22"
encSecKey = "61be0f8c5305c919985b294069695d2ba84746c75ed902e8157b6b595a920c57cfedf552f5c764fed37be84bfd1cce31e05eb364644930fbe6bc074747ed8e670933aef4d8b8841209c6956f4b532f8a3caadfaffb61f233a42e53dc5795183b9c6ccb30b8aa56d656466cc6523e8213560bb3e476ab95d58755f47f91cf7f53"
data ={
"params": params,
"encSecKey": encSecKey
}
target_url = "http://music.163.com/weapi/v1/resource/comments/R_SO_4_{}??csrf_token=".format(rname_id)
res = requests.post(target_url, headers = headers,data = data)
return res
def main():
#url = input("请输入您需要获取的歌曲地址:")
url = "http://music.163.com/#/song?id=4466775"
res = open_url(url)
get_hot_comments(res)
#with open("res.txt",'w', encoding = 'utf-8') as f:
# f.write(res.text)
if __name__ == "__main__":
main()
希望上述内容能对各位的学习与开发有所启发,欢迎继续支持本站获取更多技术资源。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













