抓取網易雲音樂歌曲熱門評論生成詞雲(轉)
前言
網易雲音樂一直是我向往的“神壇“,聽音樂看到走心的評論的那一刻,高山流水。於是今天來抓取一下歌曲的熱門評論。並做成詞雲來展示,看看相對於這首歌最讓人有感受的評論內容是什麼。
做成詞雲的好處就是直觀以及美觀, 其他的我也想不出來有什麼了。
抓資料
要想做成詞雲,首先得有資料才行。於是需要一點點的爬蟲技巧。
- 抓包分析
- 加密資訊處理
- 抓取熱門評論內容
抓包分析
使用Chrome控制檯。我們可以輕鬆的找到評論所在的連結。如下圖:
現在URL算是找到了,下一步就是進行資料抓取了。但是簡單嘗試了一下,發現並不能獲取到詳細的資訊,而是返回了空空的字串。
再次檢視hreaders的資訊,發現瀏覽器使用的是POST的方式進行的請求。具體欄位如下圖:
加密資訊處理
然後經過我的測試,直接把瀏覽器上這倆資料拿過來就可以。但是要想真正的解決這個加密處理,還需要有點加解密的只是儲存。GitHub上有大牛分析了網易雲音樂的欄位加密的詳情。有興趣的可以參照下面的連結。
這裡我就使用這麼個臨時的方法好了,而且對於不同的歌曲是可以重用的。待會我們可以驗證一下。
抓取熱門評論內容
從第一步拿到了介面,而返回的資料就是一個JSON字串,獲取一下稍作處理即可使用。
# coding: utf8
# @Author: 郭 璞
# @File: 網易雲音樂歌曲熱門評論.py
# @Time: 2017/4/26
# @Contact: [email protected]
# @blog: http://blog.csdn.net/marksinoberg
# @Description: 熱門評論獲取
import requests
import json
def getcomments(musicid):
url = 'http://music.163.com/weapi/v1/resource/comments/R_SO_4_{}?csrf_token=5594eaee83614ea8ca9017d85cd9d1b3' .format(musicid)
payload = {
'params': '4hmFbT9ZucQPTM8ly/UA60NYH1tpyzhHOx04qzjEh3hU1597xh7pBOjRILfbjNZHqzzGby5ExblBpOdDLJxOAk4hBVy5/XNwobA+JTFPiumSmVYBRFpizkWHgCGO+OWiuaNPVlmr9m8UI7tJv0+NJoLUy0D6jd+DnIgcVJlIQDmkvfHbQr/i9Sy+SNSt6Ltq',
'encSecKey': 'a2c2e57baee7ca16598c9d027494f40fbd228f0288d48b304feec0c52497511e191f42dfc3e9040b9bb40a9857fa3f963c6a410b8a2a24eea02e66f3133fcb8dbfcb1d9a5d7ff1680c310a32f05db83ec920e64692a7803b2b5d7f99b14abf33cfa7edc3e57b1379648d25b3e4a9cab62c1b3a68a4d015abedcd1bb7e868b676'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36',
'Referer': 'http://music.163.com/song?id={}'.format(musicid),
'Host': 'music.163.com',
'Origin': 'http://music.163.com'
}
response = requests.post(url=url, headers=headers, data=payload)
data = json.loads(response.text)
hotcomments = []
for hotcomment in data['hotComments']:
item = {
'nickname': hotcomment['user']['nickname'],
'content': hotcomment['content']
}
hotcomments.append(item)
# 返回熱門評論
return [content['content'] for content in hotcomments]
if __name__ == '__main__':
hot = getcomments(439915614)
print(hot)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
看下執行的結果吧。
['初戀很單純,跟她好了快一年了,終於帶她回家見家長。席間老媽不停的給她夾菜,“閨女,來,吃完了待會讓他送你回去”。女友可能是誤會我媽的意思了,立馬放下碗筷,一臉委屈“叔叔阿姨你們別趕我走,我是真心喜歡他的,我以後少吃點”。聽到女友說這句話,心瞬間化了。', '李玉剛合唱團已上線,女高音李玉剛、女低音李玉剛、男高音李玉剛、男低音李玉剛[大笑][大笑][大笑]', '2012年,那年大一,軍訓,我們相識。異鄉的冬天凍傷了她的初戀,我卻沒有理由給她一個安慰的擁抱。此後的日子我們依然是朋友,偶爾碰面寒暄,而後走散在洶湧的人潮。她又有了一個他,繼而凋謝。2015年,大三。我們一起散步,夜色的掩護下我向她表白了,她牽起我的手,哭著說:你終究說出來了。', '大學畢業後我去了北京,而她留在了老家,剛開始每天一個電話,後來越來越少,甚至斷了聯絡,直到兩年後的一次我坐火車回家,出了站之後看見她一個人站在外面,頭髮被風吹得很凌亂,看到我之後也沒有動,我放下行李過去把她抱住,她立馬大哭對我說我還以為你不要我了。那一刻起我就知道這輩子就是你。', '「剛」好「玉」見「李」', '96年離開家奔波闖蕩,06年星光大道讓全國觀眾認識了你,16年出道整十週年,你用十年時間向世界證明你不是當初那個初登央視舞臺稚嫩的李玉剛,你是歷經十年歲月積澱的玉先生,你是傳播傳統文化的先行者,你是擺脫桎梏追求藝術突破的追夢人 世界之大欣喜相逢 我們17日十週年演唱會見[親親]', '副歌有毒…畫室今天放了三遍[大哭]第一次聽這唱的什麼鬼…第二次感覺還不錯…第三次就開始中毒了拿起手機聽歌識曲,單曲迴圈走起[大哭]', '曾經和一個女人躺在同一個床上一整夜,不是戀人。什麼都沒幹,天南海北純侃純聊天。那天晚上我清唱了這首歌給她聽。早上起來後,感覺雙方之間親密指數成幾何增長到以前的n次方。現在,她是我的女人。再過幾個月就結婚了。初戀,感謝剛好遇見你', '高一遇見他,考試的時候一見鍾情,考試結束我去看了他桌子上的考號,他叫穆佳明,我喜歡他的名字,他去打球,不管多遠我都會跑過去,他生病,我跑去買藥,他運動會跑步,我去給他送水,用肚子暖好,我打針的時候知道他在附近打球,就跑過去,結果感冒加重,全世界都知道我很愛他,全世界都知道他不愛我', '相識7年,在一起卻才8個月,怪我當初沒有足夠的勇氣,沒想到你會為我堅持那麼久。感謝上天讓我剛好遇見你,是你的堅持讓我們最後能走在一起,希望你能在我的一生中留下漫長的回憶,我會珍惜這場來之不易的相遇。在今後的日子裡,讓我來給你走下去的勇氣,給我機會保護你、呵護你,劉小瘦我愛你。。。', '大一異地,我放假早回來坐在網咖打魔獸,這首歌被點播了N遍,腦袋裡有了簡單的旋律:因為我剛好遇見你。 晚上抱著手機互說晚安,夢裡夢到她了,現在剛醒,找到這首歌無限迴圈。 祝福所有異地戀終成眷屬。[愛心]', '我們哭了,我們笑著。[大哭]開口就已經淚流滿面,好懷念那段時光', '我用網易雲音樂,當初的信任給她買的手機,給她安裝了網易雲登入了我的帳號,可她不怎麼用,16年12月22號她送走了我,至今雖然不再聯絡就在昨天我突然發現我喜歡的音樂列表內多了一首歌就是這首《剛好遇見你》。', '因為我剛好遇見你 距離高考還有一百四十多天 和你成為同學大概一年多了 沒想到你居然偷偷喜歡了我很久 這次我們省模擬考總分一模一樣 要填模擬志願 你說大學的事就交給我了 你說我們可以去北方看雪吃火鍋 你說我喜歡的專業都不錯 你說我們很有緣 可是啊 最重要的那一句 你怎麼不說呢', '那年你18,我20。我去酒店實習,下班,剛好遇見你……我不相信一見鍾情,可你是例外。現在,我25,你23。感謝你,來我的世界,就不曾離開。明年,我們要結婚了']
- 1
- 1
詞雲
下面就直接上程式碼好了。
但是官網也好,其他地方也罷,都沒有說對於中文的處理。然後我找啊找啊的,終於找到了解決辦法,那就是在WordCloud的構造方法上指定字型檔案的路徑。這樣就可以解決中文亂碼的問題了。具體設定如下:
WordCloud(random_state=1, font_path = r’C:/Users/Windows/fonts/simkai.ttf’)
# coding: utf8
# @Author: 郭 璞
# @File: 詞雲測試.py
# @Time: 2017/4/26
# @Contact: [email protected]
# @blog: http://blog.csdn.net/marksinoberg
# @Description: 詞雲測試
from wordcloud import WordCloud
from temp import 網易雲音樂歌曲熱門評論 as hot
text = " ".join(hot.getcomments(439915614))
wordcloud = WordCloud(random_state=1, font_path = r'C:/Users/Windows/fonts/simkai.ttf').generate(text)
import matplotlib.pyplot as plt
plt.figure()
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
詞雲執行效果
最後來對比一下執行的效果。
總結
最後來回顧一下,文章針對網易雲音樂的熱門評論做了爬取,並通過詞雲生成器製作出了相對應的詞雲。
可以拓展的地方:
- 詞雲mask,支援特定背景的詞雲生成
- 熱門評論批量爬取,只需要獲取對應歌曲的ID即可。
- 封裝起來,提取介面,對外界提供熱評服務,或者詞雲生成服務。
- … …
相關推薦
抓取網易雲音樂歌曲熱門評論生成詞雲(轉)
非原創作品,轉載自:http://blog.csdn.net/marksinoberg/article/details/70809830 前言 網易雲音樂一直是我向往的“神壇“,聽音樂看到走心的評論的那一刻,高山流水。於是今天來抓取一下歌曲的熱門評論。並做成詞
採用selenium 抓取網易雲音樂上的熱門歌曲以及相關資訊
由於網易雲音樂網站頁面採用了js技術進行了非同步載入,所以這裡採用了selenium並採用PHantomJS工具抓取動態頁面 廢話不多說,直接上程式碼。這個程式碼也是要了小生2天時間啊這是改進版的 # -*- coding: utf-8 -*- #@Time :18-10-2
Win7,64位,Python使用Beautiful Soup 4抓取網易雲音樂歌單中的歌曲
使用Beautiful soup 4抓取網易雲音樂歌單(http://music.163.com/#/playlist?id=569020058)中的歌曲 安裝Beautiful soup 4成功後,可以像下面這樣匯入Beautiful soup 4模組: >
java 爬蟲 抓取 網易雲音樂
大家好,我是烤鴨: 今天和大家交流一下爬蟲,抓取網易雲音樂。只討論技術,不提倡其他的。 1. 找音樂源地址 谷歌瀏覽器 F12 ,找請求型別是 Media的。 2.&nb
使用Python抓取網易雲音樂所有歌手資訊
思路 1. 構造請求頁面的URL 2. 請求資料 請求資料使用的是requests包,當請求的網址沒有錯誤並且status_code為200時,返回網頁的內容。 注意:這裡並沒改變請求的headers,也沒有使用代理 3. 解析資料
Python實例之抓取網易雲課堂搜索數據(post方式json型數據)並保存為TXT
網易雲 pytho sco 關鍵詞 page json ner urn 頁碼 本實例實現了抓取網易雲課堂中以‘java’為關鍵字的搜索結果,經詳細查看請求的方式為post,請求的結果為JSON數據 具體實現代碼如下: import requests import json
抓取網易雲評論,生成詞雲圖
非原創作品,轉載自:http://blog.csdn.net/marksinoberg/article/details/70809830前言網易雲音樂一直是我向往的“神壇“,聽音樂看到走心的評論的那一刻,高山流水。於是今天來抓取一下歌曲的熱門評論。並做成詞雲來展示,看看相對於這首歌最讓人有感受的評論內容是什麼
python爬蟲----網易雲音樂之熱門評論
上次爬取了歌手的熱門歌曲,這次就來爬取熱門歌曲的熱門評論 熱門評論可沒歌曲那麼容易搞到手,還好有前輩們寫過類似的爬蟲,所以有許多資料參考。 lyrichu這位作者也寫了一篇關於網易雲熱門評論的爬蟲,寫的很詳細,可以去看看 http://www.cnblogs.com/lyr
使用正則表示式抓取網易雲課堂中的資料
要抓取資料的頁面如下: 程式碼: package com.url; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.
爬蟲網易雲音樂,熱評,詞雲,prettytable。
樂爬網易雲 熱門評論 第三方庫 api介面 獲取評論 解析資料 顯示資料 詞雲 第三方庫 製作流程 詞雲程式碼 詞雲 排行榜 api
爬蟲用fiddler抓取網易新聞客戶端手機app內容
一,工具 電腦安卓模擬器:夜神模擬器 抓包工具:fiddler 程式碼:pycharm 二、分析 1.首先要設定好fiddler和夜神模擬器的關聯,這個網上很多教程這裡不做介紹 2.開啟網易app,觀察fiddler抓包列表,儘量先清空下然後重新整理
利用神州靈雲AppTrace抓取到的APP資料反向給做Jmeter介面測試(二)
用jmeter模擬登入月光茶人APP選購支付流程(或者大量併發,實現壓測效果) 現實中APP對登入都有限制,同一賬號只能同時登入一次,且手裡沒有多餘的賬號如何進行併發測試呢,這個時候只需單獨對登入http請求進行控制即可;其他請求操作可以放在一塊進行併發測試;
分蘋果----網易2017內推筆試程式設計題合集(一)
[程式設計題] 分蘋果 n 只奶牛坐在一排,每個奶牛擁有 ai 個蘋果,現在你要在它們之間轉移蘋果,使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從一隻奶牛身上拿走恰好兩個蘋果到另一個奶牛
網易微專業——Java Web開發工程師學習筆記(2):Tomcat
目錄結構:bin:可執行檔案conf:配置檔案lib:Tomcat依賴庫temp:臨時資料夾webapps:預設的應用部署目錄work:供web應用使用bin:啟動指令碼通過改變環境變數JAVA_OPTS,常見啟動引數-server -Xms512m -Xmx512mserv
網易2017內推筆試程式設計題合集(二)(第三題) 不要二
[程式設計題] 不要二 二貨小易有一個W*H的網格盒子,網格的行編號為0~H-1,網格的列編號為0~W-1。每個格子至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等於2。 對於兩個格子座標
騰訊雲安全:移動 APP 安全行業報告(轉)
移動 APP 已逐步滲透入我們的生活,據統計,2016年,APP 發行數量僅電商、金融、遊戲這三大類共計高達2萬左右,國內移動網際網路活躍使用者數已經突破10億,移動網際網路這樣快速的推移,移動網際網路的安全問題更為嚴峻,基於騰訊雲樂固和騰訊平臺的大資料分析, 整個移動應
如何用Python網絡爬蟲爬取網易雲音樂歌曲
今天 http 分享圖片 分享 圖片 分分鐘 參考 down 技術 今天小編帶大家一起來利用Python爬取網易雲音樂,分分鐘將網站上的音樂down到本地。 跟著小編運行過代碼的筒子們將網易雲歌詞抓取下來已經不再話下了,在抓取歌詞的時候在函數中傳入了歌手ID和歌曲名兩個參數
python爬取網易雲音樂歌曲評論信息
webkit fun 數據包 cond bubuko ret value selenium apple 網易雲音樂是廣大網友喜聞樂見的音樂平臺,區別於別的音樂平臺的最大特點,除了“它比我還懂我的音樂喜好”、“小清新的界面設計”就是它獨有的評論區了——————各種故事匯
網易雲音樂評論抓取及生成詞雲
在csdn首頁上偶然看到了這個話題,然而那篇文章並沒有分詞,而且只有首頁的評論,找了相關的資料,都不能直接執行。 # -*- coding: utf-8 -*- """ Created on Tue May 2 09:34:33 2017 http://blog.csdn.net/
Python爬取網易雲音樂歌單內所有歌曲
一、目標: 下載網易雲音樂熱門歌單 二、用到的模組: requests,multiprocessing,re。 三、步驟: (1)頁面分析:首先開啟網易雲音樂,選擇熱門歌單,可以看到以下歌單列表,然後開啟開發者工具 本人對於Python學習建立了一個小小的學習圈子,為