運用爬蟲抓取網易云音樂搶手談論生成好玩的詞云
互聯網爬蟲是一個很有意思的技術,借由爬蟲,我們可以做到很多好玩的事情——這其中就包括爬取評論。
詞云就是個更好玩的技術,通過技術方法分析詞語出現頻率,生成可視化的圖形,將文字內容用圖形呈現,想想就很意思。
這次,我們就試著把這兩個技術結合起來吧。
前言
網易云音樂一直是我向往的“神壇“,聽音樂看到走心的評論的那一刻,高山流水。于是今天來抓取一下歌曲的熱門評論。并做成詞云來展示,看看相對于這首歌最讓人有感受的評論內容是什么。
做成詞云的好處就是直觀以及美觀, 其他的我也想不出來有什么了。
抓數據
要想做成詞云,首先得有數據才行。于是需要一點點的爬蟲技巧。
- 抓包分析
- 加密信息處理
- 抓取熱門評論內容
01
抓包分析
使用Chrome控制臺。我們可以輕松的找到評論所在的鏈接。如下圖:
現在URL算是找到了,下一步就是進行數據抓取了。但是簡單嘗試了一下,發現并不能獲取到詳細的信息,而是返回了空空的字符串。
再次查看hreaders的信息,發現瀏覽器使用的是POST的方式進行的請求。具體字段如下圖:
02
加密信息處理
然后經過我的測試,直接把瀏覽器上這倆數據拿過來就可以。但是要想真正的解決這個加密處理,還需要有點加解密的只是存儲。GitHub上有大牛分析了網易云音樂的字段加密的詳情。有興趣的可以搜索一下下面的文章參考一下。
網易云音樂新登錄API分析
這里我就使用這么個臨時的方法好了,而且對于不同的歌曲是可以重用的。待會我們可以驗證一下。
03
抓取熱門評論內容
從第一步拿到了接口,而返回的數據就是一個JSON字符串,獲取一下稍作處理即可使用。
看下運行的結果吧。
詞云
詞云我使用的一個第三方庫Wordcloud,可以使用pip進行安裝。官網上有非常詳細而且清晰的案例可供參考,這里就不重復的描述了。有興趣的參考下面的鏈接。
https://amueller.github.io/word_cloud/auto_examples/index.html
下面就直接上代碼好了。
但是官網也好,其他地方也罷,都沒有說對于中文的處理。然后我找啊找啊的,終于找到了解決辦法,那就是在WordCloud的構造方法上指定字體文件的路徑。這樣就可以解決中文亂碼的問題了。具體設置如下:
WordCloud(random_state=1, font_path = r’C:/Users/Windows/fonts/simkai.ttf’)
01
詞云運行效果
最后來對比一下運行的效果。
總結
來回顧一下,文章針對網易云音樂的熱門評論做了爬取,并通過詞云生成器制作出了相對應的詞云。
可以拓展的地方:
- 詞云mask,支持特定背景的詞云生成
- 熱門評論批量爬取,只需要獲取對應歌曲的ID即可。
- 封裝起來,提取接口,對外界提供熱評服務,或者詞云生成服務。
- … …
最后,網易真的是國內互聯網的現象級產品——似乎所有的網易產品都天生自帶神評論的屬性。