Python實現批量下載音效素材詳解
序言
作為當代新青年,應該多少會點短視頻制作吧?
哈哈,那當代自媒體創(chuàng)作者好了~
制作視頻的時候,多少需要一些搞怪的聲音?或者奇怪的聲音?音樂等等~
一個個下載多慢,我們今天就用python實現批量下載~
環(huán)境/模塊/目標
1、目標
2、開發(fā)環(huán)境
兄弟們,剛學Python的話,不要安裝一些其它的軟件,就裝這兩個就可以了~
Python 環(huán)境 Pycharm 編輯器
3、模塊
本次使用的模塊主要是這兩個
requests # 數據請求模塊 re # 正則表達式模塊
流程講解
這次我詳細寫流程,小白都能看懂的那種,看完大家記得三連,給我一點創(chuàng)作的動力吧 ,嘿嘿~
首先我們打開網址后右鍵選擇檢查
選擇network ,刷新頁面往下滑,會出現一個 page-4 和 page-5 的頁面。
這兩個頁面很多數據是直接在這里有的,我們隨便找一個點擊播放,然后點擊media ,在headers里面會有一個音頻文件,就是我標注的下載地址。
可以直接播放也可以直接下載
那想獲得這個這個地址怎么搞呢?
我們直接復制這串數字,比如32716 ,然后點擊左上角的這個搜索框,搜索一下。
搜索之后我們可以看到page-5這里就有音頻的聲音鏈接地址。
音頻標題也在這里可以找到
然后我們點擊headers,直接對于這個url地址發(fā)送請求。
首先導入requests模塊
import requests
url就是剛剛的鏈接
url = 'https://手動替換一下/search/word-/page-5'
然后我們加一個headers進行偽裝
這里直接復制 headers 下面的 user-agent 里面的內容就好了
記得加上引號
headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36' }
然后發(fā)送請求,打印一下看看結果
response = requests.get(url=url, headers=headers) print(response.text)
打印出來的內容太多了,我們直接在上面搜索MP3,精準定位,它的標題就在mp3文件下面那個鏈接那里。
然后我們把它復制過來,用正則去匹配中間這段內容,中間的url用(.*?)代替。
首先導入re模塊
import re
剛剛那段內容復制過來,.*?用括號括起來。
從 response.text 里面去匹配,匹配到的內容用play_url_list這個變量接收。
play_url_list = re.findall('<div class="ui360 ui360-vis"><a href="(.*?)"></a></div>', response.text)
然后打印一下看看有沒有匹配到內容
print(play_url_list)
可以看到直接匹配到了mp3文件,它包含在一個列表里面。
那我們還需要它的標題名字,同樣的復制過來。
還是一樣的操作,url和名字都替換為 .*?
從 response.text 里面去匹配,匹配到的內容用name_list這個變量接收。
name_list = re.findall('<a class="h6 text-white font-weight-bold" target="_blank" href=".*?" title="(.*?)">.*?</a>', response.text)
打印一下
print(name_list)
可以看到名字這些數據,都已經獲取到了。
遍歷一下,把獲取到的數據打包到一起,然后一個個提取出來,獲取它的一個二進制數據內容,用mp3_content 這個變量接收一下
for play_url, name in zip(play_url_list, name_list): mp3_content = requests.get(url=play_url, headers=headers).content
然后直接保存,with open 給它一個文件夾的名字,加上名字,加上 .mp3的后綴,保存方式 mode = wb , 用 f.write 這個變量接收一下 mp3_content
with open('音效\\' + name + '.mp3', mode='wb') as f: f.write(mp3_content)
這里咱們沒有寫自動創(chuàng)建文件夾, 所以需要手動創(chuàng)建一下文件夾,然后把你命名的名字寫入進來。
然后我們打印一下,看看結果。
print(name)
相關的數據內容就保存在你創(chuàng)建的文件夾了
注:所有的url大家自己手動替換一下,我這里把它們刪了,不然會誤殺
全部代碼
import requests import re url = 'https://這里大家自己替換一下/search/word-/page-5' headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36' } response = requests.get(url=url, headers=headers) # print(response.text) play_url_list = re.findall('<div class="ui360 ui360-vis"><a href="(.*?)"></a></div>', response.text) name_list = re.findall('<a class="h6 text-white font-weight-bold" target="_blank" href=".*?" title="(.*?)">.*?</a>', response.text) print(play_url_list) print(name_list) for play_url, name in zip(play_url_list, name_list): mp3_content = requests.get(url=play_url, headers=headers).content with open('音效\\' + name + '.mp3', mode='wb') as f: f.write(mp3_content) print(name)
到此這篇關于Python實現批量下載音效素材詳解的文章就介紹到這了,更多相關Python下載音效素材內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python 常用日期處理-- datetime 模塊的使用
這篇文章主要介紹了python 如何對日期進行處理,幫助大家更好的理解和學習python,感興趣的朋友可以了解下2020-09-09python 實現將小圖片放到另一個較大的白色或黑色背景圖片中
今天小編就為大家分享一篇python 實現將小圖片放到另一個較大的白色或黑色背景圖片中,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python退出While循環(huán)的3種方法舉例詳解
在每次循環(huán)結束后,我們需要檢查循環(huán)條件是否滿足。如果條件滿足,則繼續(xù)執(zhí)行循環(huán)體內的代碼,否則退出循環(huán),這篇文章主要給大家介紹了關于Python退出While循環(huán)的3種方法,需要的朋友可以參考下2023-10-10Python Selenium XPath根據文本內容查找元素的方法
這篇文章主要介紹了Python Selenium XPath根據文本內容查找元素的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12