文 | 某某白米饭\
来源:Python 技术「ID: pythonall」
微信公众号可以发视频了,但是这个视频似乎没有直接能下载到本地的功能,小编就写一个 Python 小脚本将视频下载到本地。\
分析
将公众号文章在默认的浏览器中打开
浏览器中的 url 才是我们最需要的
在 F12 控制面板的网络面板找到视频的播放地址,这个地址隐藏的有点深。找到一个 https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_play_url&preview=0&__biz=MzU0NjAxMzAyMQ==&mid=2247546485&idx=1&vid=wxv_2319653037964951553&uin=&key=&pass_ticket=&wxtoken=777&devicetype=&clientversion=&__biz=MzU0NjAxMzAyMQ%3D%3D&appmsg_token=&x5=0&f=json 的 url 返回值中带有 .mp4 的 url。
下面是他的返回值。
这时就简单了,我们只要分析 https://mp.weixin.qq.com/mp/videoplayer url 就可以了。可以看到这里的 mid、vid、_biz 都是需要修改的,这些内容在文章中就能找到。
分析完了链接,下面就开始写代码:
import requests,re
url = 'https://mp.weixin.qq.com/s/C6P5RwIejmUrnovom3lZFg'
result = requests.get(url).text
biz = re.search(r'__biz=(.*?)&',result)[1]
mid = re.search(r'mid=(.*?)&',result)[1]
vid = re.search(r'wxv_(.*?)\"',result)[0].replace('\"', '')
video_url = f'https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_play_url&preview=0&__biz={biz}&mid={mid}&idx=1&vid={vid}&uin=&key=&pass_ticket=&wxtoken=777&devicetype=&clientversion=&__biz={biz}&appmsg_token=&x5=0&f=json'
url_info = requests.get(video_url).json()['url_info'][0]['url']
resp = requests.get(url_info, stream=True)
with open('day10', 'wb') as f:
f.write(resp.content)
print('视频下载完成')
复制代码
总结
公众号的视频下载还是挺简单的。大家学会了吗?