15行Python程式碼搞定網易雲熱門歌單

上海小小胖發表於2019-03-10

0. 引言

馬上314情人節就要來了,是否需要一首歌來撫慰你,受傷或躁動的心靈。來吧,今天教你用15行程式碼搞定熱門歌單。學起來並聽起來吧。

本文使用的是Selenium模組,它是一個自動化測試工具,利用它我們可以驅動瀏覽器執行特定的動作,如點選、下拉等等操作,對於一些 JavaScript 渲染的頁面來說,此種抓取方式非常有效。另外採用了Chrome瀏覽器配合Selenium工作。

1. 環境

作業系統:Windows

Python版本:3.7.2

2. 準備工作

a. 若你的環境中沒有selenium模組,直接使用pip安裝即可。

pip install selenium
複製程式碼

b. 開啟谷歌瀏覽器,檢查Chrome的版本:在瀏覽器地址中輸入 chrome://settings/help 回車即可看到。

python爬取網易雲音樂

c. 開啟ChromeDriver 的官方網站: https://sites.google.com/a/chromium.org/chromedriver/downloads 尋找與你當前瀏覽器版本相對應的ChromeDriver下載。

python爬取網易雲音樂

d. 選擇你自己的作業系統型別進行下載即可。

python爬取網易雲音樂

e. 以Windows為例,下載結束後,將ChromeDriver 放置在python安裝目錄下的Scripts資料夾即可。

python爬取網易雲音樂

準備工作完成,程式碼寫起來吧~

3. 迷你爬蟲的實現

我們這次的目標是爬取熱門歌單,比如網易雲音樂中播放量大於1000萬的歌單資訊(歌單名稱、連結)。

a. 我們先來開啟網易雲的歌單第一頁: https://music.163.com/#/discover/playlist/?order=hot&cat=%E5%85%A8%E9%83%A8&limit=35&offset=0

b. 使用Chrome的開發者工具進行分析。

python爬取網易雲音樂

我們想要拿的資訊全在這裡:

  • msk,封面[mask]:有歌單的名稱及連結
  • nb,播放數[number broadcast]:135萬

c. 我們還需要遍歷所有的頁,使用工具繼續分析,找到“下一頁”的URL。

python爬取網易雲音樂

d. 切換至最後一頁,拿到最後一頁的URL。

python爬取網易雲音樂

e. 等我們爬取完所有符合的歌單資訊後,將其儲存在本地。

f. 全部工作結束,最後再通過下面的虛擬碼回顧下整體思路。

python爬取網易雲音樂

g. 爬取的效果如下:

python爬取網易雲音樂

4. 總結

本文旨在安撫你因情人節受傷的小心靈,同時帶你入個爬蟲的門,感受下python的強大。

關注公眾號「Python專欄」,後臺回覆:zsxq02,獲取本文全部程式碼

Python專欄二維碼

相關文章