在手机或电脑上用Python爬取B站视频和音频

手机请看:隐形的抖音 - 抖音 (douyin.com)

使用方法:

一、新建一个目录,创建python文件main.py(代码在下面)
二、打开B站,点击要下载视频的网页,在分享中点击 “获取视频分享链接”,一段带网址的字符串已经复制了。稍后运行python后 右键就会粘贴上命令行。
三、右键粘贴:  【带妈妈体验女明星的一天!雇十几个群演扮狂热粉丝,场面一度失控!】 https://www.bilibili.com/video/BV1qt421t7sy/?share_source=copy_web&vd_source=8c16ac376754bbd7a9a173417a9fe597

(注意:为了方便生成对应文件名,所以粘贴内容必须带有“【" xxx "】"这两个符号,中间为文件命名名称)网址为自动识别。

四、回车后,无错误即爬取完成。

五、在main.py当前文件夹里生成xxx.mp4和xxx.mp3文件。

六、后续需要FFMPEG才能合并成完整带声音的MP4视频。

网上搜索的代码,原文已找不到,开始使用不是很方便,经修改后,实测可以使用,可生成应用程序独立使用,代码如下:

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/",#这段代码的意思是你从哪儿获得这个网址的(换一句话讲,谁推荐你去访问这个网址的).有了它就能够正常访问.
}

def extract_content(text, symbol):
    pattern = r'%s(.*?)%s' % (symbol, symbol)
    result = re.findall(pattern, text)
    return result


text=input('请输入b站视频网址:')
 
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('网址:'+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)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少年960

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值