亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

發(fā)送請求

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

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

我們發(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ù)輸出。

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

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

BQ6EUJ1U8Y_SAVPOT7CXP.png

解析數(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)頁,保存二進制到本地。with open() 語句用于自動關(guān)閉文件,確保文件在使用完畢后被正確關(guān)閉。在這個例子中,我們使用 with open() 語句打開一個名為 music// + title + .mp3的文件,并將其保存到變量filename 中。

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

總結(jié)

這是一個關(guān)于如何下載音樂并保存到手機的Python代碼實戰(zhàn)。我們首先確定我們的目標網(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)頁,保存二進制,就可以保存了。

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

相關(guān)文章

最新評論