网页抓取qq(PythonQQ音乐数据(第二弹)项目(二)获取指定歌曲首页热评)
优采云 发布时间: 2022-04-14 20:29网页抓取qq(PythonQQ音乐数据(第二弹)项目(二)获取指定歌曲首页热评)
【一、项目目标】
通过教你如何使用Python抓取QQ音乐数据(第一弹),我们实现了指定歌手单曲排名中指定页数歌曲的歌曲名、专辑名和播放链接。
通过教大家如何使用Python抓取QQ音乐数据(第二弹),我们实现了获取音乐指定歌曲的歌词和指定歌曲首页的热评。
本次以项目(二))为基础,获取更多评论并生成词云图,形成分步教程,教大家使用Python抓取QQ音乐数据(第三弹)。
[二、需要的库]
涉及的主要库有:requests、json、wordcloud、jieba
如果要替换词云图片背景图片,还需要numpy库和PIL库(pipinstall枕头)
【三、项目实现】
1、首先我们来回顾一下,下面是项目代码(二)获取指定歌曲首页热评;
def get_comment(i):<br />
url_3 = 'https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg'<br />
headers = {<br />
'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',<br />
# 标记了请求从什么设备,什么浏览器上发出<br />
}<br />
params = {'g_tk_new_20200303': '5381', 'g_tk': '5381', 'loginUin': '0', 'hostUin': '0', 'format': 'json', 'inCharset': 'utf8', 'outCharset': 'GB2312', 'notice': '0', 'platform': 'yqq.json', 'needNewCode': '0', 'cid': '205360772', 'reqtype': '2', 'biztype': '1', 'topid': id, 'cmd': '8', 'needmusiccrit': '0', 'pagenum': '0', 'pagesize': '25', 'lasthotcommentid': '', 'domain': 'qq.com', 'ct': '24', 'cv': '10101010'}<br />
res_music = requests.get(url_3,headers=headers,params=params)<br />
# 发起请求<br />
js_2 = res_music.json()<br />
comments = js_2['hot_comment']['commentlist']<br />
f2 = open(i+'评论.txt','a',encoding='utf-8') #存储到txt中<br />
for i in comments:<br />
comment = i['rootcommentcontent'] + '\n——————————————————————————————————\n'<br />
f2.writelines(comment)<br />
# print(comment)<br />
f2.close()<br />
2、我们来考虑如何获取下面的评论,下图是项目(二)评论页的parms参数;
图片
3、网页无法选择评论的页码,如果想看后面的评论,请反复点击“点击加载更多”;我们可以点击查看对parms进行了哪些更改。
图片
4、这里有个小技巧,点击下图的清除按钮,清除网络接口,然后点击“点击加载更多”,就可以直接在第二页找到数据了。
图片
图片
5、点击加载更多,会出现如下图。
图片
图片
6、发现不仅pagenum变了,cmd和pagesize也变了。那个参数有什么问题,那我们看第三页;
图片
7、只有pagenum变了,我们试试把pagenum改成“0”,其他不变,第一页数据能正常显示吗?
图片