用python下载微信公众号视频

1,490 阅读1分钟

1146135b89307c3e1445900fcc3a8c75.png

文 | 某某白米饭\

来源:Python 技术「ID: pythonall」

247a8a368d4c29c43696a0c8ca9c0e37.png

微信公众号可以发视频了,但是这个视频似乎没有直接能下载到本地的功能,小编就写一个 Python 小脚本将视频下载到本地。\

分析

将公众号文章在默认的浏览器中打开

fedbda09a7a02fc17cc2177ff6231c0c.png

浏览器中的 url 才是我们最需要的

48f382c3e2e5c99eb870dea736f98f42.png

在 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。

8b10a1aae5be905422a53b76626c90db.png

下面是他的返回值。

1fe3876a6b9d5d0a0a65df9a1a3f50cb.png

这时就简单了,我们只要分析 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('视频下载完成')
复制代码

总结

公众号的视频下载还是挺简单的。大家学会了吗?

福利

程序员必看经典书单