Python采集情感音頻的實(shí)現(xiàn)示例
前言
我最近喜歡去聽情感類的節(jié)目,比如說,婚姻類,我可能老了吧。我就想著怎么把音樂下載下來了,保存到手機(jī)上,方便我們業(yè)余時間去聽。
發(fā)送請求
首先,我們要確定我們的目標(biāo)網(wǎng)址,我們想要獲取到每一個音頻的地址。

我們發(fā)送請求,獲取網(wǎng)頁源代碼。我們相信大家這里的代碼都會寫了。
url = 'https://www.ximalaya.com/album/37453303'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
}
res = requests.get(url,headers=headers)requests 是 Python 的一個內(nèi)置模塊,用于發(fā)送 HTTP 請求。在這個例子中,我們使用 requests.get() 函數(shù)向 https://www.ximalaya.com/album/37453303 發(fā)送一個 GET 請求,并將請求頭和響應(yīng)體作為參數(shù)傳遞給函數(shù)。
獲取數(shù)據(jù)
info_list = re.findall('"tracks":[(.*?)]', res.text)[1]
print(info_list)子字符串列表中的第一個元素就是我們要找的 tracks 字符串。我們將其存儲在 info_list 變量中,并使用 print() 函數(shù)輸出。
我們發(fā)現(xiàn),我們想要的數(shù)據(jù),就在我們匹配的內(nèi)容中。里面包含了每一個音樂的標(biāo)題和其id,我們接下來把這個獲取下來。
注意,這里,不是json數(shù)據(jù),所以,我們只能正則去匹配。

解析數(shù)據(jù)
我們通過對比url發(fā)現(xiàn),我們只需要拿到uid,就可以直接訪問到音頻。這里就不多解釋。
audio = f'https://www.ximalaya.com/revision/play/v1/audio?id={trackId}&ptype=1'我們只需要把trackID換掉,就可以了。請求上面的url,就可以拿到音頻的地址。接下來,我們寫代碼。
for trackId, title in zip(trackIds, titles):
audio = f'https://www.ximalaya.com/revision/play/v1/audio?id={trackId}&ptype=1'
print(audio)
audio_res = requests.get(audio, headers=headers)
audio_url = audio_res.json()['data']['src']
print(audio_url)zip() 函數(shù)用于將兩個列表合并成一個列表。在這個例子中,我們使用 zip() 函數(shù)將 trackIds 和 titles 兩個列表合并成一個列表,并將其存儲在 trackIds 變量中。
然后,我們將 trackId 和 title 轉(zhuǎn)換為字符串格式,并將其存儲在 audio 變量中。
接下來,我們使用 requests.get() 函數(shù)向 audio 發(fā)送一個 GET 請求,并將請求頭和響應(yīng)體作為參數(shù)傳遞給函數(shù)。最后,我們使用 json() 方法將響應(yīng)體中的 data 字段轉(zhuǎn)換為 JSON 格式,并使用 ['data']['src'] 取出了 src 屬性,即 audio_url 的值,并將其存儲在 audio_url 變量中。
保存數(shù)據(jù)
music_content = requests.get(audio_url, headers=headers).content
with open('music//' + f'{title}' + '.mp3', mode='wb') as filename:
filename.write(music_content)
print(title, '保存成功')接下來,我們請求這個網(wǎng)頁,保存二進(jìn)制到本地。with open() 語句用于自動關(guān)閉文件,確保文件在使用完畢后被正確關(guān)閉。在這個例子中,我們使用 with open() 語句打開一個名為 music// + title + .mp3的文件,并將其保存到變量filename 中。
然后,我們使用 write() 方法將音頻內(nèi)容寫入文件中。
總結(jié)
這是一個關(guān)于如何下載音樂并保存到手機(jī)的Python代碼實(shí)戰(zhàn)。我們首先確定我們的目標(biāo)網(wǎng)址,然后使用requests.get()函數(shù)向該網(wǎng)址發(fā)送一個 GET 請求,并將請求頭和響應(yīng)體作為參數(shù)傳遞給函數(shù)。
在請求成功后,我們使用json()方法將響應(yīng)體中的 data 字段轉(zhuǎn)換為 JSON 格式,并使用['data']['src']取出了 src 屬性,即 audio_url 的值,并將其存儲在 audio_url 變量中。
我們請求網(wǎng)頁,保存二進(jìn)制,就可以保存了。
到此這篇關(guān)于Python采集情感音頻的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python采集情感音頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python自動化實(shí)現(xiàn)登錄獲取圖片驗(yàn)證碼功能
這篇文章主要介紹了python自動化實(shí)現(xiàn)登錄獲取圖片驗(yàn)證碼功能,本文通過實(shí)例截圖的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
IntelliJ IDEA安裝運(yùn)行python插件方法
在本篇文章里我們給大家分享關(guān)于IntelliJ IDEA安裝運(yùn)行python插件方法,對此有需求的讀者們可以跟著步驟學(xué)習(xí)下2018-12-12
Python語言描述機(jī)器學(xué)習(xí)之Logistic回歸算法
這篇文章主要介紹了Python語言描述機(jī)器學(xué)習(xí)之Logistic回歸算法,涉及Sigmoid函數(shù),梯度上升法等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12
python實(shí)現(xiàn)數(shù)據(jù)預(yù)處理之填充缺失值的示例
下面小編就為大家分享一篇python實(shí)現(xiàn)數(shù)據(jù)預(yù)處理之填充缺失值的示例。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
解決jupyter運(yùn)行pyqt代碼內(nèi)核重啟的問題
這篇文章主要介紹了解決jupyter運(yùn)行pyqt代碼內(nèi)核重啟的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
python基于pygame實(shí)現(xiàn)響應(yīng)游戲中事件的方法(附源碼)
這篇文章主要介紹了python基于pygame實(shí)現(xiàn)響應(yīng)游戲中事件的方法,實(shí)例分析了Python基于pygame針對鍵盤及鼠標(biāo)事件的響應(yīng)方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11

