python+request 哔哩哔哩视频下载

实现功能为输入视频av号,完成下载。

随便点击一个视频进入,打开调试器观察。

发现有一个内容较大的fetch文件

python+request 哔哩哔哩视频下载_第1张图片

打开该网址,会发现视频自动下载到电脑中。可见,可以通过该网址完成bilibili的视频下载。

而该网址,也可在网站的html中找到:

利用正则可将其匹配出来。

r'"url":"http(.+?)","backup_url":.+?'

所以完整的py文件如下:

import requests
import re
aid = input('请输入av号:')
# 获取bilibili视频地址
url = 'https://www.bilibili.com/video/av'+aid
headers = {'Host': 'www.bilibili.com',
           'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
            'Connection': 'keep-alive',
           }
res = requests.get(url=url, headers=headers).text
# 获取视频的真正地址
vid = re.compile(r'"url":"http(.+?)","backup_url":.+?')
tittle = re.findall(r'

', res)[0] vid_url = 'https'+re.findall(vid, res)[0] print(tittle, '\n', vid_url) vid_headers = { 'Origin': 'https://www.bilibili.com', 'Referer': url, 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36', } video = requests.get(url=vid_url, headers=vid_headers).content # 视频保存在与py文件同级的video文件夹下 with open('./video/'+tittle+'.mp4', 'wb+') as f: f.write(video)

 运行结果如下:
python+request 哔哩哔哩视频下载_第2张图片

视频文件已下载到本地。

你可能感兴趣的:(爬虫,爬虫)