零基礎如何用 15行Python 代碼搞定網易雲熱門歌單?
健身、吃飯、敲代碼;等車、擼貓、下午茶……若能佐以合適的音樂當「配餐」,總是愜意非常。本文就將帶你爬一爬網易雲的那些熱門歌單!
作者 | 上海小胖
責編 | 仲培藝
心情好或心情壞,點一首歌撫慰你受傷或躁動的心靈——下面教你用 15 行代碼搞定熱門歌單!
本文使用的是 Selenium 模塊,它是一個自動化測試工具,利用它我們可以驅動瀏覽器執行特定的動作,如點擊、下拉等操作,對於一些 JavaScript 渲染的頁面來說,此種抓取方式非常有效。
採用了 Chrome 瀏覽器配合 Selenium 工作,本文的 Python 版本是 3.7.2。
準備工作
1. 若你的環境中沒有 Selenium 模塊,直接使用 pip 安裝即可:
pip install selenium
2. 打開谷歌瀏覽器,檢查Chrome的版本:在瀏覽器地址中輸入 chrome://settings/help 回車即可看到:
3. 打開 ChromeDriver 的官方網站(https://sites.google.com/a/chromium.org/chromedriver/downloads),尋找與你當前瀏覽器版本相對應的 ChromeDriver 下載:
4. 選擇你自己的操作系統類型進行下載即可:
5. 以 Windows 為例,下載結束後,將 ChromeDriver 放置在 Python 安裝目錄下的 Scripts 文件夾即可:
準備工作完成,代碼寫起來吧~
迷你爬蟲的實現
我們這次的目標是爬取熱門歌單,比如網易雲音樂中播放量大於 1000萬 的歌單信息(歌單名稱、鏈接)。
1. 先來打開網易雲的歌單第一頁:
https://music.163.com/#/discover/playlist/
2. 使用 Chrome 的開發者工具 進行分析:
我們想要拿的信息全在這裡:
msk,封面 [mask]:有歌單的名稱及鏈接
nb,播放數 [number broadcast]:135萬
3. 我們還需要遍歷所有的頁,使用工具繼續分析,找到「下一頁」的 URL:
4. 切換至最後一頁,拿到最後一頁的 URL:
5. 等我們爬取完所有符合的歌單信息後,將其保存在本地;
6.全部工作結束,最後再通過下面的偽代碼回顧下整體思路:
7. 爬取的效果如下:
另附源碼:https://github.com/MiracleYoung/You-are-Pythonista/tree/master/PythonExercise/Tool/Mini_Crawl
作者簡介:上海小胖,四大諮詢的TechLead,mongoDB Professional 獲得者。「Python專欄」專註Python領域的各種技術:爬蟲、DevOps、人工智慧、Web開發等。
本文系作者投稿,版權歸作者所有。
熱 文推 薦
你點的每個「在看」,我都認真當成了喜歡
※如何在一行 rm -rf 的基礎上釋放 Mac 上的內存空間?
※代碼編輯器橫評:為什麼 VS Code 能拔得頭籌?| 程序員硬核評測
TAG:CSDN |