老規(guī)矩梨州,先上代碼
import requests
import os
import urllib
# json文件地址
json_url = "https://www.ximalaya.com/sets/8912476.ext.json"
# 仿冒Chrome瀏覽器進(jìn)行訪問蛛碌,否則會無法訪問
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
response = requests.get(json_url, headers=headers)
# 獲取json文件
full_json = response.json()
# 找到所有的聲音
tracks = full_json['tracks']
# 創(chuàng)建下載文件夾
if not os.path.exists('download'):
os.makedirs('download')
# 逐個下載
for track in tracks:
# 獲取json中的下載地址和標(biāo)題
url = track['play_url']
title = track['title']
# 用標(biāo)題作為文件名
filename = "download/"+title+".mp3"
# 下載
with urllib.request.urlopen(url) as web:
with open(filename, 'wb+') as outfile:
outfile.write(web.read())
# 輸出下載結(jié)果
print(title," downloaded.")
print('Download is done.')
這次的抓取是順著上一篇,上一次在抓取iTunes的時候看到有些音頻的源是來自喜馬拉雅的寻定,所以儒洛,我順便去喜馬拉雅轉(zhuǎn)了一下。
- 每一個喜馬拉雅的專輯特姐,例如:郭德綱21年相聲精選晶丘,都會有一個分享鏈接,點開后唐含,選擇“展開獲取專輯鏈接”浅浮,這時候會有“html代碼”、“通用代碼”和“微電臺”三個選項捷枯,選擇html代碼滚秩,并復(fù)制鏈接:
https://www.ximalaya.com/thirdparty/player/album/player.html?id=9723091&type=red
。 - 把上面的HTML代碼的地址復(fù)制到瀏覽器中打開淮捆,并使用瀏覽器的開發(fā)者工具跟蹤網(wǎng)絡(luò)情況郁油,會發(fā)現(xiàn)一個xhr里面包含該專輯所有的音頻信息,地址為
https://www.ximalaya.com/sets/9723091.ext.json
攀痊,只需要分析該json的字段就可以抓緊了桐腌。 - python代碼沒有什么難度。
路人:“禪師苟径,喜馬拉雅上面這些免費(fèi)資源隨時可以收聽案站,流量也不算大,為什么還要下載呢棘街?”
禪師微微一笑蟆盐,指著面前一把木錘對路人道:“看看它你就明白了≡庋常”
路人參詳許久石挂,若有所思道:“大師的意思是否是說,下載的意義就像這把木錘一樣险污,看似平淡無奇痹愚,但是有一種工匠精神?”
大師閉上眼睛道:“非也蛔糯!我意思是拯腮,我下載關(guān)你錘子事〔趁疲”