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爬取網易雲音樂](https://i.iter01.com/images/ecbdaa5077df769d5afd5b34e225503f999539d7c0b8a12d441c8e954f7173bb.png)
c. 開啟ChromeDriver 的官方網站: https://sites.google.com/a/chromium.org/chromedriver/downloads 尋找與你當前瀏覽器版本相對應的ChromeDriver下載。
![python爬取網易雲音樂](https://i.iter01.com/images/3973a97c46c3ad804df490655c55f130b876fa2fbad8a15ca71f2dfb26665da3.png)
d. 選擇你自己的作業系統型別進行下載即可。
![python爬取網易雲音樂](https://i.iter01.com/images/5ef116c989e04429b1c61d451ee1af2ed54c401388516c1a5cf45f707841b769.png)
e. 以Windows為例,下載結束後,將ChromeDriver 放置在python安裝目錄下的Scripts資料夾即可。
![python爬取網易雲音樂](https://i.iter01.com/images/9261f8ce7ef3b3d4cab81cd457f6c2b9ec7a31750182d4778f454f7de0c9c0ad.png)
準備工作完成,程式碼寫起來吧~
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爬取網易雲音樂](https://i.iter01.com/images/440755889809f6991b5bd832f25d9a8fd245af89081b1d8bbc5b9237e04bac4b.png)
我們想要拿的資訊全在這裡:
- msk,封面[mask]:有歌單的名稱及連結
- nb,播放數[number broadcast]:135萬
c. 我們還需要遍歷所有的頁,使用工具繼續分析,找到“下一頁”的URL。
![python爬取網易雲音樂](https://i.iter01.com/images/12d2ba938d63a3262e75a249da5216e6efc0ccbc5c0da54fd80875df799f7e51.png)
d. 切換至最後一頁,拿到最後一頁的URL。
![python爬取網易雲音樂](https://i.iter01.com/images/f4ed994bf348adce21cd0a2470eafc4ba385e7e2ffb01f36ba0832d030daf995.png)
e. 等我們爬取完所有符合的歌單資訊後,將其儲存在本地。
f. 全部工作結束,最後再通過下面的虛擬碼回顧下整體思路。
![python爬取網易雲音樂](https://i.iter01.com/images/b7ebc481566be1d73cfffff31128503c18679d92e03e156f44a980e6fdb900c2.png)
g. 爬取的效果如下:
![python爬取網易雲音樂](https://i.iter01.com/images/c65781c44597a4bbb02d690904944dc14939ed427b4546db174350d9cb03ef61.png)
4. 總結
本文旨在安撫你因情人節受傷的小心靈,同時帶你入個爬蟲的門,感受下python的強大。
關注公眾號「Python專欄」,後臺回覆:zsxq02,獲取本文全部程式碼
![Python專欄二維碼](https://i.iter01.com/images/516c3758ab69f7bd76d631397205569f5d8b980fe58757448382b97c9ed11b1f.jpg)