運(yùn)用爬蟲抓取網(wǎng)易云音樂搶手談?wù)撋珊猛娴脑~云
互聯(lián)網(wǎng)爬蟲是一個(gè)很有意思的技術(shù),借由爬蟲,我們可以做到很多好玩的事情——這其中就包括爬取評論。
詞云就是個(gè)更好玩的技術(shù),通過技術(shù)方法分析詞語出現(xiàn)頻率,生成可視化的圖形,將文字內(nèi)容用圖形呈現(xiàn),想想就很意思。
這次,我們就試著把這兩個(gè)技術(shù)結(jié)合起來吧。

前言
網(wǎng)易云音樂一直是我向往的“神壇“,聽音樂看到走心的評論的那一刻,高山流水。于是今天來抓取一下歌曲的熱門評論。并做成詞云來展示,看看相對于這首歌最讓人有感受的評論內(nèi)容是什么。
做成詞云的好處就是直觀以及美觀, 其他的我也想不出來有什么了。
抓數(shù)據(jù)
要想做成詞云,首先得有數(shù)據(jù)才行。于是需要一點(diǎn)點(diǎn)的爬蟲技巧。
- 抓包分析
- 加密信息處理
- 抓取熱門評論內(nèi)容
01
抓包分析
使用Chrome控制臺(tái)。我們可以輕松的找到評論所在的鏈接。如下圖:

現(xiàn)在URL算是找到了,下一步就是進(jìn)行數(shù)據(jù)抓取了。但是簡單嘗試了一下,發(fā)現(xiàn)并不能獲取到詳細(xì)的信息,而是返回了空空的字符串。
再次查看hreaders的信息,發(fā)現(xiàn)瀏覽器使用的是POST的方式進(jìn)行的請求。具體字段如下圖:

02
加密信息處理
然后經(jīng)過我的測試,直接把瀏覽器上這倆數(shù)據(jù)拿過來就可以。但是要想真正的解決這個(gè)加密處理,還需要有點(diǎn)加解密的只是存儲(chǔ)。GitHub上有大牛分析了網(wǎng)易云音樂的字段加密的詳情。有興趣的可以搜索一下下面的文章參考一下。
網(wǎng)易云音樂新登錄API分析
這里我就使用這么個(gè)臨時(shí)的方法好了,而且對于不同的歌曲是可以重用的。待會(huì)我們可以驗(yàn)證一下。
03
抓取熱門評論內(nèi)容
從第一步拿到了接口,而返回的數(shù)據(jù)就是一個(gè)JSON字符串,獲取一下稍作處理即可使用。

看下運(yùn)行的結(jié)果吧。

詞云
詞云我使用的一個(gè)第三方庫Wordcloud,可以使用pip進(jìn)行安裝。官網(wǎng)上有非常詳細(xì)而且清晰的案例可供參考,這里就不重復(fù)的描述了。有興趣的參考下面的鏈接。
https://amueller.github.io/word_cloud/auto_examples/index.html
下面就直接上代碼好了。
但是官網(wǎng)也好,其他地方也罷,都沒有說對于中文的處理。然后我找啊找啊的,終于找到了解決辦法,那就是在WordCloud的構(gòu)造方法上指定字體文件的路徑。這樣就可以解決中文亂碼的問題了。具體設(shè)置如下:
WordCloud(random_state=1, font_path = r’C:/Users/Windows/fonts/simkai.ttf’)

01
詞云運(yùn)行效果
最后來對比一下運(yùn)行的效果。

總結(jié)
來回顧一下,文章針對網(wǎng)易云音樂的熱門評論做了爬取,并通過詞云生成器制作出了相對應(yīng)的詞云。
可以拓展的地方:
- 詞云mask,支持特定背景的詞云生成
- 熱門評論批量爬取,只需要獲取對應(yīng)歌曲的ID即可。
- 封裝起來,提取接口,對外界提供熱評服務(wù),或者詞云生成服務(wù)。
- … …
最后,網(wǎng)易真的是國內(nèi)互聯(lián)網(wǎng)的現(xiàn)象級產(chǎn)品——似乎所有的網(wǎng)易產(chǎn)品都天生自帶神評論的屬性。