
爬取了陳奕迅新歌《我們》10萬(wàn)條評(píng)論數(shù)據(jù)發(fā)現(xiàn):原來(lái),有些人只適合遇見(jiàn)
最近就有一部“懷舊”題材的電影,未播先火,那就是劉若英的處女作——《后來(lái)的我們》。青春,愛(ài)情,夢(mèng)想,一直是“懷舊”題材的核心要素,雖然電影現(xiàn)在還未上映,但先行發(fā)布的主題曲《我們》,已經(jīng)虐哭了不少人。在MV里,歌聲清清淺淺,訴說(shuō)著那些年關(guān)于愛(ài)情里的遺憾。
“我最大的遺憾,就是你的遺憾,與我有關(guān)”,下面就和小燈塔一起來(lái)感受一下吧。
這首歌是《后來(lái)的我們》中的主題曲,網(wǎng)易云音樂(lè)上線當(dāng)天便席卷千萬(wàn)+播放量,現(xiàn)如今光是網(wǎng)易云上面的評(píng)論就馬上突破了10萬(wàn)條。
網(wǎng)易云音樂(lè)一直是我向往的“神壇”,聽(tīng)音樂(lè)看到走心的評(píng)論的那一刻,高山流水。于是今天我們來(lái)抓取一下歌曲的熱門(mén)評(píng)論。并做成圖表、詞云來(lái)展示,看看相對(duì)于這首歌最讓人有感受的評(píng)論內(nèi)容是什么。
1
抓數(shù)據(jù)
要想做成詞云圖表,首先得有數(shù)據(jù)才行。于是需要一點(diǎn)點(diǎn)的爬蟲(chóng)技巧。
基本思路為:抓包分析、加密信息處理、抓取熱門(mén)評(píng)論信息
抓包分析
我們首先用瀏覽器打開(kāi)網(wǎng)易云音樂(lè)的網(wǎng)頁(yè)版,進(jìn)入陳奕迅《我們》歌曲頁(yè)面,可以看到下面有評(píng)論。接著F12進(jìn)入開(kāi)發(fā)者控制臺(tái)(審查元素)。
接下來(lái)就要做的是,找到歌曲評(píng)論對(duì)應(yīng)的url,并分析驗(yàn)證其數(shù)據(jù)跟網(wǎng)頁(yè)現(xiàn)實(shí)的數(shù)據(jù)是否吻合,步驟如下圖:
通過(guò)歌曲id輕松找到評(píng)論所在的鏈接
查看hreaders的信息,發(fā)現(xiàn)瀏覽器使用的是POST的方式進(jìn)行的請(qǐng)求
具體字段如上圖,會(huì)發(fā)現(xiàn)表單中需要填兩個(gè)數(shù)據(jù),名稱(chēng)為params和encSecKey。后面緊跟的是一大串字符,換幾首歌會(huì)發(fā)現(xiàn),每首歌的params和encSecKey都是不一樣的,因此,這兩個(gè)數(shù)據(jù)可能經(jīng)過(guò)一個(gè)特定的算法進(jìn)行加密過(guò)的
服務(wù)器返回的和評(píng)論相關(guān)的數(shù)據(jù)為json格式的,里面含有非常豐富的信息(比如有關(guān)評(píng)論者的信息,評(píng)論日期,點(diǎn)贊數(shù),評(píng)論內(nèi)容等等),其中hotComments就是我們要找的熱門(mén)評(píng)論,總共15條
那我們的思路就很清晰了,只需要分析這個(gè)api并模擬發(fā)送請(qǐng)求,獲取json進(jìn)行解析就好了。
加密信息處理
然后經(jīng)過(guò)我的測(cè)試,直接把瀏覽器上這倆數(shù)據(jù)拿過(guò)來(lái)就可以。但是要想真正的解決這個(gè)加密處理,還需要有點(diǎn)加解密的只是存儲(chǔ)。關(guān)于這兩個(gè)參數(shù)如何解密,強(qiáng)大的知乎上其實(shí)已經(jīng)有答案的了,感興趣的朋友可以進(jìn)去看一下
https://www.zhihu.com/question/36081767
我們?cè)谶@里就只需要用我們這種偷懶的辦法就可以完成需求了。這里我就使用這么個(gè)臨時(shí)的方法好了,而且對(duì)于不同的歌曲是可以重用的,待會(huì)我們可以驗(yàn)證一下。
抓取熱門(mén)評(píng)論信息
代碼塊如下:
import requestsimport jsonurl = 'http://music.163.com/weapi/v1/resource/comments/R_SO_4_551816010?csrf_token=568cec564ccadb5f1b29311ece2288f1'headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36', 'Referer':'http://music.163.com/song?id=551816010', 'Origin':'http://music.163.com', 'Host':'music.163.com'}
#加密數(shù)據(jù),直接拿過(guò)來(lái)用
user_data = {
'params': 'vRlMDmFsdQgApSPW3Fuh93jGTi/ZN2hZ2MhdqMB503TZaIWYWujKWM4hAJnKoPdV7vMXi5GZX6iOa1aljfQwxnKsNT+5/uJKuxosmdhdBQxvX/uwXSOVdT+0RFcnSPtv',
'encSecKey': '46fddcef9ca665289ff5a8888aa2d3b0490e94ccffe48332eca2d2a775ee932624afea7e95f321d8565fd9101a8fbc5a9cadbe07daa61a27d18e4eb214ff83ad301255722b154f3c1dd1364570c60e3f003e15515de7c6ede0ca6ca255e8e39788c2f72877f64bc68d29fac51d33103c181cad6b0a297fe13cd55aa67333e3e5'
}
response = requests.post(url,headers=headers,data=user_data)
data = json.loads(response.text)
hotcomments = []
for hotcommment in data['hotComments']:
item = {
'nickname':hotcommment['user']['nickname'],
'content':hotcommment['content'],
'likedCount':hotcommment['likedCount']
}
hotcomments.append(item)
#獲取評(píng)論用戶(hù)名,內(nèi)容,以及對(duì)應(yīng)的獲贊數(shù)
content_list = [content['content'] for content in hotcomments]
nickname = [content['nickname'] for content in hotcomments]
liked_count = [content['likedCount'] for content in hotcomments]
2
在獲得相關(guān)評(píng)論數(shù)據(jù)后,我們將其做成圖表與詞云圖,將讓人看起來(lái)更直觀。
接下來(lái)需要在自己電腦上安裝需要相關(guān)的安裝包: pyecharts(圖表包)、matplotlib(繪圖功能包)、 WordCloud(詞云包)
其中,pyecharts 是一個(gè)用于生成 Echarts 圖表的類(lèi)庫(kù)。 Echarts 是百度開(kāi)源的一個(gè)數(shù)據(jù)可視化 JS 庫(kù),主要用于數(shù)據(jù)可視化,同時(shí)pyecharts 兼容 Python2 和 Python3。安裝非常簡(jiǎn)單,只需:
pip install pyecharts
關(guān)于WordCloud(詞云包)安裝過(guò)程中出現(xiàn)問(wèn)題,可以看看我之前這篇文章:
https://zhuanlan.zhihu.com/p/33507393
接下來(lái)就是代碼的實(shí)現(xiàn):
利用之前獲得評(píng)論用戶(hù)名和對(duì)應(yīng)的點(diǎn)贊數(shù),將其制作成圖表圖:
from pyecharts import Bar
bar = Bar("熱評(píng)中點(diǎn)贊數(shù)示例圖")
bar.add( "點(diǎn)贊數(shù)",nickname, liked_count, is_stack=True,mark_line=["min", "max"],mark_point=["average"])
bar.render()
由此可以看出,獲得最高贊數(shù)(95056)評(píng)論是:
@魚(yú)大叔Uncle:后來(lái)的我,離開(kāi)了他,永遠(yuǎn)的離開(kāi)了他,十年的感情不過(guò)寥寥幾句話。后來(lái)的我,嫁給了一個(gè)很普通的人,沒(méi)有他的浪漫,卻有不一樣的溫暖。
大多數(shù)贊數(shù)為20000-30000之間,最低都達(dá)到7000+,(基本與網(wǎng)頁(yè)里評(píng)論中數(shù)據(jù)吻合)。
最后,我們將所有的熱門(mén)評(píng)論內(nèi)容,制作成詞云圖展示出來(lái),代碼塊如下:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
content_text = " ".join(content_list)
wordcloud = WordCloud(font_path=r"C:simhei.ttf",max_words=200).generate(content_text)
plt.figure()
plt.imshow(wordcloud,interpolation='bilinear')
plt.axis('off')
plt.show()
結(jié)果圖:
從圖中可以看出,很多人感慨,后來(lái)只有你我,再無(wú)我們。
注明:所有數(shù)據(jù),是屬于當(dāng)時(shí)所爬取的數(shù)據(jù)。
3
后記
曾記得,郭敬明在書(shū)里寫(xiě),“我們太年輕,以致于都不知道以后的時(shí)光,竟然那么長(zhǎng),長(zhǎng)得足夠讓我忘記你,足夠讓我重新喜歡一個(gè)人,就像當(dāng)初喜歡你那樣。”
我們這一生,總是遇到太多的后來(lái)。從不懂愛(ài)到懂愛(ài),從擁有到珍惜。
所幸是到了最后,無(wú)論過(guò)了多少年。后來(lái)的我們,都在對(duì)方身上,學(xué)會(huì)了如何去愛(ài)。
就像陳奕迅在歌里唱的,“有過(guò)執(zhí)著,放下執(zhí)著”。有些人啊,光是遇見(jiàn)就已經(jīng)值得了。
我們確實(shí)沒(méi)有了后來(lái)。
就讓后來(lái)的我們,慢慢走,別回頭。
不談虧欠,感謝遇見(jiàn)。
只是在下一次遇見(jiàn)愛(ài)的時(shí)候,我們都要學(xué)會(huì)更懂得珍惜。
這才是愛(ài)的意義,也是我們?yōu)槭裁慈?ài)。
數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢(xún)效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類(lèi)型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專(zhuān)業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專(zhuān)業(yè)操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶(hù)體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷(xiāo)案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷(xiāo)成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類(lèi)分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類(lèi)分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10