欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python采集情感音頻的實(shí)現(xiàn)示例

 更新時(shí)間:2023年04月24日 09:28:21   作者:極客飛虎  
本文主要介紹了Python采集情感音頻的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

我最近喜歡去聽(tīng)情感類的節(jié)目,比如說(shuō),婚姻類,我可能老了吧。我就想著怎么把音樂(lè)下載下來(lái)了,保存到手機(jī)上,方便我們業(yè)余時(shí)間去聽(tīng)。

發(fā)送請(qǐng)求

首先,我們要確定我們的目標(biāo)網(wǎng)址,我們想要獲取到每一個(gè)音頻的地址。

5UYECYGM021Q{2_Q2M`A{1P.png

我們發(fā)送請(qǐng)求,獲取網(wǎng)頁(yè)源代碼。我們相信大家這里的代碼都會(huì)寫(xiě)了。

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 的一個(gè)內(nèi)置模塊,用于發(fā)送 HTTP 請(qǐng)求。在這個(gè)例子中,我們使用 requests.get() 函數(shù)向 https://www.ximalaya.com/album/37453303 發(fā)送一個(gè) GET 請(qǐng)求,并將請(qǐng)求頭和響應(yīng)體作為參數(shù)傳遞給函數(shù)。

獲取數(shù)據(jù)

info_list = re.findall('"tracks":[(.*?)]', res.text)[1]
print(info_list)

子字符串列表中的第一個(gè)元素就是我們要找的 tracks 字符串。我們將其存儲(chǔ)在 info_list 變量中,并使用 print() 函數(shù)輸出。

QQ圖片20230421165637.png我們發(fā)現(xiàn),我們想要的數(shù)據(jù),就在我們匹配的內(nèi)容中。里面包含了每一個(gè)音樂(lè)的標(biāo)題和其id,我們接下來(lái)把這個(gè)獲取下來(lái)。

注意,這里,不是json數(shù)據(jù),所以,我們只能正則去匹配。

BQ6EUJ1U8Y_SAVPOT7CXP.png

解析數(shù)據(jù)

我們通過(guò)對(duì)比url發(fā)現(xiàn),我們只需要拿到uid,就可以直接訪問(wèn)到音頻。這里就不多解釋。

audio = f'https://www.ximalaya.com/revision/play/v1/audio?id={trackId}&ptype=1'

我們只需要把trackID換掉,就可以了。請(qǐng)求上面的url,就可以拿到音頻的地址。接下來(lái),我們寫(xiě)代碼。

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ù)用于將兩個(gè)列表合并成一個(gè)列表。在這個(gè)例子中,我們使用 zip() 函數(shù)將 trackIds 和 titles 兩個(gè)列表合并成一個(gè)列表,并將其存儲(chǔ)在 trackIds 變量中。

然后,我們將 trackId 和 title 轉(zhuǎn)換為字符串格式,并將其存儲(chǔ)在 audio 變量中。

接下來(lái),我們使用 requests.get() 函數(shù)向 audio 發(fā)送一個(gè) GET 請(qǐng)求,并將請(qǐng)求頭和響應(yīng)體作為參數(shù)傳遞給函數(shù)。最后,我們使用 json() 方法將響應(yīng)體中的 data 字段轉(zhuǎn)換為 JSON 格式,并使用 ['data']['src'] 取出了 src 屬性,即 audio_url 的值,并將其存儲(chǔ)在 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, '保存成功')

接下來(lái),我們請(qǐng)求這個(gè)網(wǎng)頁(yè),保存二進(jìn)制到本地。with open() 語(yǔ)句用于自動(dòng)關(guān)閉文件,確保文件在使用完畢后被正確關(guān)閉。在這個(gè)例子中,我們使用 with open() 語(yǔ)句打開(kāi)一個(gè)名為 music// + title + .mp3的文件,并將其保存到變量filename 中。

然后,我們使用 write() 方法將音頻內(nèi)容寫(xiě)入文件中。

總結(jié)

這是一個(gè)關(guān)于如何下載音樂(lè)并保存到手機(jī)的Python代碼實(shí)戰(zhàn)。我們首先確定我們的目標(biāo)網(wǎng)址,然后使用requests.get()函數(shù)向該網(wǎng)址發(fā)送一個(gè) GET 請(qǐng)求,并將請(qǐng)求頭和響應(yīng)體作為參數(shù)傳遞給函數(shù)。

在請(qǐng)求成功后,我們使用json()方法將響應(yīng)體中的 data 字段轉(zhuǎn)換為 JSON 格式,并使用['data']['src']取出了 src 屬性,即 audio_url 的值,并將其存儲(chǔ)在 audio_url 變量中。

我們請(qǐng)求網(wǎng)頁(yè),保存二進(jìn)制,就可以保存了。

到此這篇關(guān)于Python采集情感音頻的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python采集情感音頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論