1. 程式人生 > 實用技巧 >python爬蟲抓取某易雲音樂歌詞,從此不在下載

python爬蟲抓取某易雲音樂歌詞,從此不在下載

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

以下文章來源於騰訊雲 作者:企鵝號小編

( 想要學習Python?Python學習交流群:1039649593,滿足你的需求,資料都已經上傳群檔案流,可以自行下載!還有海量最新2020python學習資料。 )

python爬蟲庫的選擇

如果你已經瞭解一些python的基礎,那不妨來搞點事情做,比如說做個爬蟲,python的爬蟲庫相當的多,我建議初學者從requests庫學起就好,為什麼這麼說,因為這個庫對新手來說特別的友好,Requests 唯一的一個非轉基因的 Python HTTP 庫,人類可以安全享用。

安裝requests庫

要安裝 Requests,只要在你的終端中執行這個簡單命令即可:pip install requests,前提是你已經安裝好pip了。

傳送請求

一開始要匯入 Requests 模組:

import requests

然後,嘗試獲取某個網頁:

r = requests.get(‘https://www.baidu.com’)

我們可以從r這個物件中獲取所有我們想要的資訊,但這也僅是 Requests 的冰山一角,requests的中文文件也很全,建議讀一下,你會感覺這個庫是真的好用,讓我們來實戰操作一下,可以讓你掌握的知識有用武之地。

抓取網易雲音樂的歌詞

開啟網易雲隨便點開一首歌,找到它的連結,比如:

網頁位址列那裡就是當前音樂的地址,點選F12進入開發者模式,找到實際的歌詞網址,紅色箭頭指向的才是它實際的網址:

python爬蟲程式碼

下面這段程式碼是params,你可以直接複製到下面的程式碼中

fz7s/Zfb0YZFub+HjxWhGTCjvUmBeXpJB6pSTFhn/ffM0DNClA5LMv1JhWC8pi4WrAICWGMQlcVcV0zrsPaJZo8P4fq7mhieN43eP9iluDrDrCmFSwvCju7uYsPOn/qU','encSecKey':'33604d40f5300f64c2acc4f620fcb31f82c1dd5d04ef019f158c46f17b5c0b32ef129df6549cba55a71dec47bbb407120e59850a9c3380c98a06b6d087a56c169873ec930a55212314e9c91b56b4dedf6709e3ef7e7608055aa8511a6afbc31514f5fe353bbc3900e7a735f4d61263e4051a6c96afc0725187b21e6a7a38d5ce

下面這段程式碼是headers的程式碼,我的是谷歌瀏覽器

Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36

正式程式碼如下:

#首先匯入用到的庫import requestsimport reimport jsondef download_music(): #找入口連結,抓資料 lrc_url = 'http://music.163.com/weapi/song/lyric?csrf_token=' #這是需要傳遞的form data 和 headers 引數 data = {'params': params} headers = {'User-Agent': headers} #構造requests請求,傳入它需要的引數 html = requests.post(lrc_url, data=data, headers=headers) #獲取歌詞,可以得到歌詞字串 json_obj = html.text #用json.loads方法把str轉換成dict json_dic = json.loads(json_obj) #可以看到它是包裹在'lrc'>'lyric'中 lrc = json_dic['lrc']['lyric'] #利用正則把時間段替換掉 pattern = re.compilr(r'[.*]') lrc = re.sub(pattern, '', lrc) print(lrc) #呼叫download_music函式if __name__ == '__main__': download_music()


程式碼執行完畢

到這裡程式碼就完成了,你可以自己試著敲一下,裡面涉及到的知識點有點多,你可以去網上找一下正則和json方面的知識,瞭解一下。到這裡這篇教程就結束了,下篇文章會給大家帶來一樣精彩的內容,喜歡的可以點個關注!!!