手機(jī)請(qǐng)看:隱形的抖音 - 抖音 (douyin.com)
使用方法:
一、新建一個(gè)目錄,創(chuàng)建python文件main.py(代碼在下面)
二、打開(kāi)B站,點(diǎn)擊要下載視頻的網(wǎng)頁(yè),在分享中點(diǎn)擊 “獲取視頻分享鏈接”,一段帶網(wǎng)址的字符串已經(jīng)復(fù)制了。稍后運(yùn)行python后 右鍵就會(huì)粘貼上命令行。
三、右鍵粘貼:? 【帶媽媽體驗(yàn)女明星的一天!雇十幾個(gè)群演扮狂熱粉絲,場(chǎng)面一度失控!】 https://www.bilibili.com/video/BV1qt421t7sy/?share_source=copy_web&vd_source=8c16ac376754bbd7a9a173417a9fe597
(注意:為了方便生成對(duì)應(yīng)文件名,所以粘貼內(nèi)容必須帶有“【" xxx "】"這兩個(gè)符號(hào),中間為文件命名名稱(chēng))網(wǎng)址為自動(dòng)識(shí)別。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-838763.html
四、回車(chē)后,無(wú)錯(cuò)誤即爬取完成。
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-838763.html
五、在main.py當(dāng)前文件夾里生成xxx.mp4和xxx.mp3文件。
六、后續(xù)需要FFMPEG才能合并成完整帶聲音的MP4視頻。
網(wǎng)上搜索的代碼,原文已找不到,開(kāi)始使用不是很方便,經(jīng)修改后,實(shí)測(cè)可以使用,可生成應(yīng)用程序獨(dú)立使用,代碼如下:
import requests
import re
import json
import io
headers={
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
"referer": "https://message.bilibili.com/",#這段代碼的意思是你從哪兒獲得這個(gè)網(wǎng)址的(換一句話(huà)講,誰(shuí)推薦你去訪(fǎng)問(wèn)這個(gè)網(wǎng)址的).有了它就能夠正常訪(fǎng)問(wèn).
}
def extract_content(text, symbol):
pattern = r'%s(.*?)%s' % (symbol, symbol)
result = re.findall(pattern, text)
return result
text=input('請(qǐng)輸入b站視頻網(wǎng)址:')
symbol = ["【","】"]
result = (extract_content(text, symbol))[0]
print('文件名為:'+result) # 輸出: ['World']
url_regex = r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
urls = (re.findall(url_regex, text))[0]
print('網(wǎng)址:'+urls)
mp4=result+'.mp4'
mp3=result+'.mp3'
def get_url_html(url):
req=requests.get(url,headers=headers)
htmltext=req.text
get_json(htmltext)
def get_json(htmltxt):
r=re.findall(r'<script>window.__playinfo__=(.*?)</script>',htmltxt)[0]
js=json.loads(r)
audiourl=js["data"]["dash"]["audio"][0]["base_url"]
videourl=js["data"]["dash"]["video"][0]["base_url"]
download(audiourl,videourl)
def download(audiourl,videourl):
res=requests.get(url=audiourl,headers=headers)
print('爬取中,等待....')
with open(mp3,"wb") as f:
f.write(res.content)
res=requests.get(url=videourl,headers=headers)
with open(mp4,"wb") as f:
f.write(res.content)
print('爬取完畢!')
if __name__=="__main__":
get_url_html(urls)
到了這里,關(guān)于在手機(jī)或電腦上用Python爬取B站視頻和音頻的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!