Python爬虫|爬取喜马拉雅音频
?
"GOOD
Python爬蟲|爬取喜馬拉雅音頻
????喜馬拉雅是知名的專業(yè)的音頻分享平臺,用戶規(guī)模突破4.8億,匯集了有聲小說,有聲讀物,兒童睡前故事,相聲小品等數(shù)億條音頻,成為國內(nèi)發(fā)展最快、規(guī)模最大的在線移動音頻分享平臺。今晚分享突破障礙,探秘喜馬拉雅的天籟之音,實現(xiàn)實時抓取,并保存到本地!
知識點:
開發(fā)環(huán)境:windows pycharm requests?json
網(wǎng)絡反爬技術(shù)
文件的操作
網(wǎng)絡請求
數(shù)據(jù)的轉(zhuǎn)換
數(shù)據(jù)類型的使用
?
?
1.????首先導入requests庫
import requests
?
6.????將上面獲得的json數(shù)據(jù)轉(zhuǎn)換成字典格式(需要導入json模塊)
import json
?
4.????header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"}
這是應對反爬蟲機制,偽裝成合法瀏覽器而添加,本來復制過來的是User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36因python不識別User-Agent,所以將User-Agent用引號引起來,同時將冒號后面的內(nèi)容也用引號引起來即可,這樣就有了合法信息;該信息的位置:按F12->Network->headers->RequestHeaders->User-Agent: Mozilla/5.0...詳見下圖
?
?
2.????設置url,鏈接的獲取方式:
打開喜馬拉雅官網(wǎng)->點擊“輕音樂”->點擊“夜色鋼琴曲”->選擇一首歌后會出現(xiàn)播放按鈕(先不要點此按鈕)->按F12->點擊Network->點擊播放按鈕->此時調(diào)試窗口會彈出播放請求->點擊name下的第一欄album?....->點擊右邊欄Headers->展開General->復制Request URL下的網(wǎng)址https://www.ximalaya.com/revision/play/album?albumId...即可
?url = "https://www.ximalaya.com/revision/play/album?albumId=291718&pageNum=1&sort=1&pageSize=30"
?
?
?
?
3????將獲取的數(shù)據(jù)賦值給response,打印response
?response = requests.get(url).text
?print(response)
結(jié)果未獲取到數(shù)據(jù),因為網(wǎng)站做了反爬蟲機制,所以要在上面添加header偽裝成合法身份
?
5.?????因為上面添加了header變量,所以應該把第3步替換為:
response = requests.get(url,headers = header).text
print(response)
?
?
添加header后,重新運行獲得了數(shù)據(jù)(JSON格式);復制下面的獲取的數(shù)據(jù),打開網(wǎng)址http://www.bejson.com/,在輸入框中粘貼剛才的數(shù)據(jù),點擊“格式化校驗”即可辨別是什么格式的文件;JSON類型為str,字典的類型為dict;它們的區(qū)別:d ={'name':'zs','gender':'man'} ===>是字典類型;而 s ='{'name':'zs','gender':'man'}' ===>是字符串類型,是JSON格式的字符串
?
7.????轉(zhuǎn)換后賦值給audio_data(可在剛才判斷類型的工具中查看一層一層的關(guān)系)
audio_data = json.loads(response)['data']['tracksAudioPlay']
?
?
8.????循環(huán)遍歷鏈接及文件名
for audio_info in audio_data:
? ? music_url = audio_info['src']
? ? music_name = music_url.split('/')[-1]
?
?
9.????將獲得的數(shù)據(jù)保存在硬盤music中
?
?
鼠標左鍵點擊左邊欄的music文件夾,將其打開,右鍵隨便一首歌曲,點擊“show in explorer”即可打開音頻文件。
?
?
?注意事項
?
代碼操作的順序是1-9,完整順序是1,6,4,2,3,5,7,8,9;
這是因為代碼存在BUG?的時候要不斷的添加刪除項
?
?
?
?
?
學的到東西的事情是鍛煉,學不到的是磨練,所以我一直走在練的路上。
共享新方式
長按識別二維碼,關(guān)注我們
?
轉(zhuǎn)載于:https://www.cnblogs.com/RyanLea/p/11072070.html
總結(jié)
以上是生活随笔為你收集整理的Python爬虫|爬取喜马拉雅音频的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业与个人短视频变现技巧
- 下一篇: 2020年开发踩坑记录