用python喝杯《Mojito》

“这是世上最美丽的那双人舞。”

没有忍住,我要对甜甜的《Mojito》下手了。

我们就用python去看看网友对这个甜甜的《Mojito》怎么评论吧。

第一步:打开QQ音乐,获取评论

不愧是杰伦,已经4千多页评论了,哎哟,不错呦!
用python喝杯《Mojito》_第1张图片
怎么获得每页评论呢?

按下键盘上的F12,发现新大陆,是的,这就是开发者工具。

选择NetWork,点击小红点旁边的clear,再点击评论的下一页,看看每次获取的数据。就像下图一样,发现网页上的评论和rootcommentcontent里面的一样,已经找到规律,接下来就让我们去获取所有的吧。come on~
用python喝杯《Mojito》_第2张图片
再来看看Request URL里面有些什么,点击Headers,找到了Request URL,把他复制到地址栏访问一下;直接返回一个json格式,咦,这不就是我们的评论吗。
用python喝杯《Mojito》_第3张图片
好的,找到地址,上代码吧!

#!/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()

保存下来的评论长这样:
用python喝杯《Mojito》_第4张图片
第二步:开始制作词云图
主要使用的是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()

结果展示来了~
用python喝杯《Mojito》_第5张图片
好听就对了~
了解更多,就来“说川普的产品猪”那看看吧~
公众号搜索,走起来~

你可能感兴趣的:(用python喝杯《Mojito》)