1. 程式人生 > >爬取網易雲音樂“三部曲”(三):輕鬆下載網易音樂歌曲!

爬取網易雲音樂“三部曲”(三):輕鬆下載網易音樂歌曲!

本文是承接前兩文章而來,前兩篇文章我們收集了歌手資訊和歌詞,可是光有歌手資訊和歌詞沒有歌曲怎麼行,沒有歌曲怎麼知道音調,這讓人怎麼學?怎麼聽?這不耍流氓嘛?為了向大家證明小編不是耍流氓,是耍無賴,我決定教大家直接把網易雲音樂歌手的熱門歌曲全部免費下載下來。除了已經下架不在網易資料庫的,其他的都能全部下載下來,咳咳,你懂的。給幾張圖,自己體會。

爬取結果:

直接下載:

但是個別幾首歌如果已經下架的話,可以下載下來,但是聽不了的,下架的歌曲畢竟是少數。

這次的程式碼很簡單,因為上 2 篇文章已經把大部分前期工作做完了,還沒上車的同學請戳以下兩篇文章:

Python 爬蟲獲取網易雲音樂歌手資訊

Python 爬蟲獲取網易雲音樂歌手歌詞

前面沒弄懂的也沒關係,文章底部會把前面兩次的原始碼和爬蟲結果檔案的獲取方式給出。

導包

之前的程式碼完成後,我們把它放在同一個目錄下是可以直接匯入並呼叫其方法的。務必要放在同一資料夾下面,這樣呼叫才不會報錯。本次我需要呼叫上次獲取歌詞的lyrics163.py 檔案,因為裡面的 get_top50() 方法返回的資訊有本次需要的歌曲 id。

用網頁上顯示的連結直接下載歌曲不可行。眾裡尋他千百度,終於被我找到了網易提供的外部的歌曲連結,輸入相應歌曲的 id 拼接獲取歌曲外部可下載的連結。

songurl = 'http://music.163.com/song/media/outer/url?id={}.mp3'.format(songid)

下載歌曲

接下來就簡單了,定義一個下載歌曲的函式就可以下載歌曲了。用 urlretrieve 下載音訊檔案,呼叫時入參填歌曲 url 和存放路徑即可。

主函式

主函式,輸入歌手對應的 id ,直接呼叫之前的儲存歌詞原始碼 lyrics163.py 裡的方法獲取歌曲 id,再呼叫上面的方法下載歌曲即可。儲存路徑提前建好,比如我在 E 盤新建了「song」目錄,下載的歌曲都會儲存在這個目錄下。

這樣,你想聽哪個歌手的歌曲,輸入歌手 id,執行此程式碼,分分鐘 熱門歌曲下載到本地。是不是很輕鬆?

是不是覺得很爽?是不是很想試試,快來動手吧!好的東西應該免費分享給大家,快舉起你那天使般的小手,點波轉發吧!當然,土豪就請隨意咯!

寫在最後:

如果大家在學習Python的路上,或者打算學習Python需要學習資料,可以在評論區留言1314,小編將免費贈送大家學習資料喔!

本文來自網路,如有侵權,請聯絡小編刪除!