Python學習-使用Python爬取陳奕迅新歌《咱們》網易雲熱門評論

《後來的咱們》上映也有好幾天了,一直沒有去看,前幾天還爆出退票的事件,電影的主題曲由陳奕迅所唱,特意找了主題曲《咱們》的MV看了一遍,仍是那個感受。那天偶然間看到Python中文社區公衆號推送了一篇文章《用Python爬取陳奕迅新歌《咱們》10萬條評論的新發現》。最近一直在學習Python,想着找一個有趣的項目作一個練習,因而就模仿做者的代碼開始練習,原文中做者在題目中說是「10萬條評論的新發現」,經過程序運行,發現做者並無對全部評論進行爬取,只是爬取了網易雲音樂中《咱們》這首歌的熱門評論,並根據數據繪製了圖表。python

網易雲《咱們》json

代碼:api

 1 #!/usr/bin/env python3
 2 # -*- coding: utf-8 -*-
 3 # @Time    : 2018/4/29 18:09
 4 # @Author  : yang
 5 # @File    : Code.py
 6 # @Software: PyCharm
 7 import requests
 8 import json
 9 
10 #爬取陳奕迅的《咱們》的熱門評論
11 #參數:url,headers,user_data(params,encSecKey)
12 url = 'http://music.163.com/weapi/v1/resource/comments/R_SO_4_551816010?csrf_token='    #評論所在的連接
13 headers = {
14     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
15     'Referer':'http://music.163.com/song?id=551816010',
16     'Origin':'http://music.163.com',
17     'Host':'music.163.com'
18 }
19 #加密數據,直接拿過來用
20 user_data = {
21     'params':'60e75d03+rb9U8IQhy6/9+H1si5pp7qLysZoQsYG9qFkXtXL9dRKMfchCKpJ8OpN9m7vSRVkYWN+wscyUqelunqxGDozt2bJWQ2QRj4pJrSa0xoJPAk5Jw8t70rYW8hwdyoYswl+kRQTQ6oz3eHHZ5BLzZZB4t/4asFSQQDnCteg2GqrEJBomMgpFMIa4Ybt',
22     'encSecKey':'52db8824c86503bc2cfc050ac78969c9155ff08f274f88b767ad6535febcbad021d0cdabcc172e01f91c42a2aca0786e407935f8feaa44a03efb96ec9d71de181e92ae8471738e4a43b252f22b46739cb3b86544a9f9403b0402bd9638a3bc2b87bf3a0b9cff6ef7b6b1589f00a5bfeecb9d45c493456082d80fbece6ac5a3fa'
23 }
24 
25 response = requests.post(url,headers=headers,data=user_data)
26 data = json.loads(response.text)
27 hotcomments = []
28 for hotcomment in data['hotComments']:
29     item = {
30         'nickname':hotcomment['user']['nickname'],
31         'content':hotcomment['content'],
32         'likedCount':hotcomment['likedCount']
33     }
34     hotcomments.append(item)
35 #獲取評論用戶名,內容,以及對應的獲贊數
36 content_list = [content['content'] for content in hotcomments]
37 nickname = [content['nickname'] for content in hotcomments]
38 liked_count = [content['likedCount'] for content in hotcomments]
39 
40 #點贊數
41 from pyecharts import Bar      #pyecharts:圖表包
42 bar = Bar('熱門中點贊數示例圖')
43 bar.add('點贊數',nickname,liked_count,is_stack=True,mark_line=['min','max'],mark_point=['average'])
44 bar.render()
45 
46 #詞雲圖
47 from wordcloud import WordCloud     #WordCloud:詞雲包
48 import matplotlib.pyplot as plt     #matplotlib:繪圖功能包
49 content_text = ' '.join(content_list)
50 wordcloud = WordCloud(font_path=r'C:\simhei.ttf',max_words=200).generate(content_text)
51 plt.figure()
52 plt.imshow(wordcloud,interpolation='bilinear')
53 plt.axis('off')
54 plt.show()

 

爬取結果:app


熱門評論中點贊數示意圖:
echarts

 

熱門評論詞雲圖:post

相關文章
相關標籤/搜索