基于配置的
python
塞勒姆
鉻瀏覽器(其他的也可以,需要相應(yīng)地修改)
分析
曾經(jīng)爬過王云網(wǎng)站的小伙伴都應(yīng)該知道,王云有齒輪傳動(dòng)機(jī)制,POST需要加密一些信息的參數(shù)。必須進(jìn)行函數(shù)的模擬。(約翰肯尼迪,美國(guó)作家)。
但是這里為了簡(jiǎn)便,小白也能理解。直接使用了Selenium來(lái)模擬登錄,然后使用接口來(lái)直接下載音樂和歌詞。實(shí)驗(yàn)步驟:
根據(jù)歌手ID獲取該歌手的熱門歌曲列表,歌曲名稱和鏈接,并保存到csv文件中;
讀取csv文件,根據(jù)歌曲鏈接,提取歌曲ID,然后利用相應(yīng)的接口,下載音樂和歌詞;
將音樂和歌詞保存到本地。
Python實(shí)現(xiàn)
該部分將對(duì)幾個(gè)關(guān)鍵的函數(shù)進(jìn)行介紹...
獲取歌手信息
利用Selenium我們就不需要看對(duì)網(wǎng)頁(yè)的請(qǐng)求了,直接可以從網(wǎng)頁(yè)源碼中提取相應(yīng)的信息。查看歌手頁(yè)面源碼可以發(fā)現(xiàn),我們需要的信息在iframe框架內(nèi),所以我們先需要切換到iframe:
brow('contentFrame')
繼續(xù)往下看,發(fā)現(xiàn)我們需要的歌曲名字和鏈接是在id="hotsong-list"的標(biāo)簽中,然后每一行對(duì)應(yīng)的是一個(gè)tr標(biāo)簽。所以先獲取所有的tr內(nèi)容,然后遍歷單個(gè)tr。
data = brow("hotsong-list").find_elements_by_tag_name("tr")
注意:前一個(gè)是find_element,后一個(gè)是find_elements,后者返回一個(gè)列表。
接下來(lái)就是解析單個(gè)tr標(biāo)簽的內(nèi)容,獲取歌曲名字和鏈接,可以發(fā)現(xiàn)兩者在class="txt"標(biāo)簽中,而且鏈接是href屬性,名字是title屬性,可以直接通過get_attribute()函數(shù)獲取。
下載歌詞
網(wǎng)易云有個(gè)獲取歌詞的接口,鏈接為:...
鏈接中的數(shù)字就是歌曲的id,所以我們擁有歌曲id后,可以直接從該鏈接下載歌詞,歌詞文件是json格式,所以我們需要用到j(luò)son包。
而且直接獲取的歌詞中,每行有一個(gè)時(shí)間軸,需要用正則表達(dá)式來(lái)剔除,完整代碼如下:
下載音頻
網(wǎng)易云也提供了音頻文件的接口,鏈接為:...
鏈接中的數(shù)字為歌曲的id,可以直接根據(jù)歌曲的id來(lái)下載音頻文件。完整代碼如下:
1.《網(wǎng)易云音樂歌詞圖片怎么保存在哪個(gè)文件夾?總結(jié)很全面速看!小白都能看懂:Python爬取網(wǎng)易云音樂下載教程》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《網(wǎng)易云音樂歌詞圖片怎么保存在哪個(gè)文件夾?總結(jié)很全面速看!小白都能看懂:Python爬取網(wǎng)易云音樂下載教程》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/gl/3129238.html