python爬取千千音樂


昨天剛寫完某狗音樂的爬取,然而我的野心絕不止於在此,所以今天我又搞了某千音樂,某千音樂總體來說是比某狗音樂難一點,有一個加密的簽名sign,但是也難逃我的法眼,奧利給

我是按照歌手為分類爬取的,正常思路是 **歌手信息-->歌單信息-->每一首歌的信息-->歌曲的真實播放地址**
但是我今天的思路是不正常的,但是我感覺挺正常的(哈哈哈)我的思路 **歌曲真實播放地址-->每首歌的信息-->歌單信息-->歌手信息**,
其實我這個思路對於音樂網站來說是正確的 ,也是我爬了這么多(某易雲,某q,酷我,酷狗 等等)網站得出來的,具體原因看我下面的分析就知道了

1.爬取的音樂

 

 


某個歌手的熱門單曲

2. 我們來找一些單首歌的真實地址

 

 


點擊播放全部就會跳到下面這個頁面,按照我截圖上面的提示操作

 

 


復制鏈接在瀏覽器中打開

 

 


到這里我們就找到歌曲的真實地址了,第一步基本完成
3. 歌曲的地址 一般都是別的請求返回來的,我們查找是哪個地址返回的,並查看請求參數
**通過全劇搜索很輕松就能找到**

 

 


接下來我們我們看一下請求參數

 

 

 

 


我們發現有四個參數,分別是sign,appid,TSID,timestamp我們一一分析
sign:經常爬蟲的人肯定知道 簽名認證,一般是js加密的
appid:不會發生改變,是千千音樂的標識 **不用管**
TSID:這還有一個id,仔細想一下這肯定就是歌曲的id了 也是需要獲取的
timestamp:時間戳
4. 首先破解sign參數
**找到js文件,搜索sign**

 

 

通過打斷點查看sign生成需要的參數

 

 

可以看到sign是一些參數(看我截圖)傳入一個函數然后返回的。我們繼續查找這個函數,打斷點檢查,

 

 


到這應該就明白了了吧,截圖上面也很清楚了,到這sign參數成功解密
5. 現在找歌曲id

 

 


歌曲id我們也有了,到這里某位歌手的所有熱門單曲我們就都可以爬下來了,但是我們只爬一個人的嗎,當然不,我全要,所以接下來我要獲取所有的歌手id

6. 獲取歌手id

 

 


可以看到分了很多頁,我們只獲取1頁的數據,別的頁只是在地址改一下頁數就可以

 

 

剛開始我以為會在網頁的標簽里面,找個一會發現竟然沒有,這時候就體現出腦袋聰明的好處了
(#^.^#)
我們在網頁源碼里搜索一個歌手的名字就可以了

 

 


通過正則匹配出來就行了,

到這就接近尾聲了,感覺文章對你有幫助的小伙伴記得點個關注哦,代碼就不公布了,也挺簡單的,想要源碼可以私聊我

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM