【一、項(xiàng)目背景】
現(xiàn)在的聽歌軟件動(dòng)不動(dòng)就是各種付費(fèi),要下載軟件才能聽,當(dāng)你下載了之后,你會(huì)驚奇的發(fā)現(xiàn)這首歌還收費(fèi),這就讓一向喜歡白嫖的小編感到很傷心了。于是,小編冥思苦想,終于讓我發(fā)現(xiàn)了其中的奧秘,一起來看看吧。
【二、項(xiàng)目準(zhǔn)備】
2、軟件:360瀏覽器
【三、項(xiàng)目目標(biāo)】
下載我們喜歡的音樂。
【四、項(xiàng)目實(shí)現(xiàn)】
1、打開酷狗音樂官網(wǎng)
360瀏覽器打開酷狗音樂官網(wǎng):
可以看到十分清爽的畫風(fēng),這也是我比較喜歡的地方。
2、審查元素,分析請(qǐng)求
打開Network ,分析請(qǐng)求,我們可以看到:
從上圖可以看出,這是請(qǐng)求的參數(shù),所以我們可以使用Requests模塊對(duì)它發(fā)起請(qǐng)求。
3、模擬發(fā)起請(qǐng)求
我們從網(wǎng)頁(yè)中得知它的地址為:
https://www.kugou.com/yy/html/search.html#searchType=song&searchKeyWord=%E4%B8%8D%E8%B0%93%E4%BE%A0
可以看到真正對(duì)于我們來說有用的就只有SearchKeyWord參數(shù)后的值,前面的搜索類型默認(rèn)填寫即可,所以我們可以這樣:
import requestsheaders={'accept': '*/*','accept-encoding':'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','cookie': 'kg_mid=ebb2de813317a791bcf7b7d3131880c4; UM_distinctid=1722ba8b22632d-07ac0227c507a7-4e4c0f20-1fa400-1722ba8b2284a1; kg_dfid=0Q0BEI47P4zf0mHYzV0SYbou; kg_dfid_collect=d41d8cd98f00b204e9800998ecf8427e; Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1590041687,1590280210,1590367138,1590367386; Hm_lpvt_aedee6983d4cfc62f509129360d6bb3d=1590367431','referer': 'https://www.kugou.com/yy/html/search.html','sec-fetch-mode': 'no-cors','sec-fetch-site': 'same-site','user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}aa=input('請(qǐng)輸入歌名:')data={'callback': 'jQuery112408716317197794392_1590368232677','keyword':aa,'page': '1','pagesize':'30','userid':'-1','clientver': '','platform': 'WebFilter','tag': 'em','filter': '2','iscorrection': '1','privilege_filter': '0','_': '1590368232679',}requests.get('https://www.kugou.com/yy/html/search.html',params=data,timeout=4)
這樣就實(shí)現(xiàn)了模擬請(qǐng)求,我們來驗(yàn)證下:
可以看出它成功打印出了和我們上面一模一樣的地址。
4、獲取音樂文件列表rep=requests.get('https://www.kugou.com/yy/html/search.html',params=data,timeout=5)print(rep.url)res=requests.get(rep.url,timeout=4)print(res.text)
當(dāng)我們將請(qǐng)求地址填寫正確后,我發(fā)現(xiàn)竟然內(nèi)容與預(yù)期不相符,但是請(qǐng)求地址對(duì)的一批。
我以為是這樣的結(jié)果:
實(shí)際上的結(jié)果:
可以看到差距很大,而且用Json也根本獲取不到,報(bào)格式錯(cuò)誤,說明不是一個(gè)Json,看來這比QQ音樂難度高點(diǎn)。不過我們今天要下載的是音頻文件,所以暫時(shí)跳過,不管它。
5、下載音頻文件
我們?cè)谒阉骱髲棾鰜淼牧斜碇羞x擇原唱曲目,進(jìn)去聽一下:
我選擇第一首,打開是這樣,我們開始騷操作,打開Network:
我們輸入后綴Mp3,然后定位到對(duì)應(yīng)的請(qǐng)求,然后打開它的請(qǐng)求結(jié)果,可以看到一個(gè)Json結(jié)果:
我們將Json結(jié)果粘貼到控制臺(tái),可以看到里面有一段關(guān)于Mp3的結(jié)果,不過添加了點(diǎn)干擾符號(hào),我們把它提取出來:
這樣我們就可以把酷狗音樂的歌曲下載下來了。
【五、項(xiàng)目總結(jié)】
1、其實(shí),酷狗音樂與QQ音樂不同,酷狗音樂的下載鏈接更好捕獲,你可以直接在它的播放界面捕獲到:
模擬請(qǐng)求這個(gè)界面,一切都搞定了。
2、關(guān)于QQ音樂的獲取,可以參考之前發(fā)布的系列文章:
1)手把手教你使用Python抓取QQ音樂數(shù)據(jù)(第一彈)
2)手把手教你使用Python抓取QQ音樂數(shù)據(jù)(第二彈)
3)手把手教你使用Python抓取QQ音樂數(shù)據(jù)(第三彈)
4)手把手教你使用Python抓取QQ音樂數(shù)據(jù)(第四彈)
------------------- End -------------------
審核編輯:符乾江
-
網(wǎng)絡(luò)爬蟲
+關(guān)注
關(guān)注
1文章
52瀏覽量
9164 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90071
發(fā)布評(píng)論請(qǐng)先 登錄
京東關(guān)鍵詞搜索商品列表的Python爬蟲實(shí)戰(zhàn)
“喂狗”的藝術(shù):看門狗不叫,才是系統(tǒng)好
# 深度解析:爬蟲技術(shù)獲取淘寶商品詳情并封裝為API的全流程應(yīng)用
LABVIEW 2023 Q1調(diào)用python后一直報(bào)錯(cuò)1671
用 Python 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)
從 0 到 1:用 PHP 爬蟲優(yōu)雅地拿下京東商品詳情
Nginx限流與防爬蟲配置方案
河北聯(lián)通攜手華為助力張北草原音樂節(jié)網(wǎng)絡(luò)暢通
【正點(diǎn)原子STM32MP257開發(fā)板試用】5.播放音樂
音樂盒芯片方案——N9305音樂芯片
如何使用Python網(wǎng)絡(luò)爬蟲下載酷狗音樂
評(píng)論