“这是世上最美丽的那双人舞。”
没有忍住,我要对甜甜的《Mojito》下手了。
我们就用python去看看网友对这个甜甜的《Mojito》怎么评论吧。
第一步:打开QQ音乐,获取评论
不愧是杰伦,已经4千多页评论了,哎哟,不错呦!
怎么获得每页评论呢?
按下键盘上的F12,发现新大陆,是的,这就是开发者工具。
选择NetWork,点击小红点旁边的clear,再点击评论的下一页,看看每次获取的数据。就像下图一样,发现网页上的评论和rootcommentcontent里面的一样,已经找到规律,接下来就让我们去获取所有的吧。come on~
再来看看Request URL里面有些什么,点击Headers,找到了Request URL,把他复制到地址栏访问一下;直接返回一个json格式,咦,这不就是我们的评论吗。
好的,找到地址,上代码吧!
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import json
def get_comment():
for i in range(1, 950):
print(i)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
'Referer': "https://y.qq.com/n/yqq/song/001glaI72k8BQX.html#comment_box"}
url ='https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?g_tk_new_20200303=1358659076&g_tk=1899459181&loginUin=1396619808&hostUin=0&format=json&inCharset=utf8&outCharset=GB2312¬ice=0&platform=yqq.json&needNewCode=0&cid=205360772&reqtype=2&biztype=2&topid=12924001&cmd=8&needmusiccrit=0&pagenum=%s&pagesize=25&lasthotcommentid=&domain=qq.com&ct=24&cv=10101010' % i
req = requests.get(url, headers=headers, verify=False)
html = str(req.content, 'UTF-8')
data = json.loads(html)
list = data['comment']['commentlist']
content = []
for i in list:
try:
content.append(i['rootcommentcontent'].replace("[em]", "").replace("[/em]", "").replace("e400", ""))
except KeyError:
content = []
break
write(content)
def write(content):
with open('comments5.txt', 'a', encoding='UTF-8') as f:
for i in range(len(content)):
string = content[i].split("\\n")
for i in string:
f.writelines(i)
f.write("\n")
if __name__ == "__main__":
get_comment()
保存下来的评论长这样:
第二步:开始制作词云图
主要使用的是wordcloud包
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import jieba
from wordcloud import WordCloud, STOPWORDS
from os import path
from scipy.misc import imread
from PIL import Image
import numpy as np
d = path.dirname(__file__)
# 读取mask的图像(图像和代码在一个路径下面)
alice_mask = np.array(Image.open(path.join(d, "12.png")))
with open('comments5.txt', 'r', encoding='UTF-8') as f:
string = f.read()
word = " ".join(jieba.cut(string))
wc = WordCloud(background_color='white',
mask=alice_mask,
max_words=100,
stopwords=STOPWORDS,
font_path='/simsunttc/simsun.ttc',
max_font_size=100,
random_state=30,
margin=2).generate_from_text(word)
import matplotlib.pyplot as plt
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.savefig(r'D:\13.png')
plt.show()
结果展示来了~
好听就对了~
了解更多,就来“说川普的产品猪”那看看吧~
公众号搜索,走起来~