关于微信公众号文章内的视频,一般有两种情况,第一种是视频内容是公众号运营者自己在微信公众号后台上传的视频,第二种是有腾讯视频logo的腾讯视频,大致是有这两种情况,如有其它也可自行补充哈!
两种视频形式介绍
第一种:运营者后台上传的视频
https://mp.weixin.qq.com/s/XvYeLWSdqFjgHzx_bLfo0w
第二种:带有腾讯视频logo的视频
https://mp.weixin.qq.com/s/cBeB8QbK7Q9HBXsEdKPi4Q
视频获取方法原理
两种视频如果你懂得浏览器调试都可以以手动的方式来获取到视频链接的真实地址,直接复制其地址到播放页面,直接点击下载即可获取到视频!
当然如果你细大佬只,可以直接分享抓包里的数据来获取视频的真实地址,然后通过代码的形式来得到视频,而且网上也有很多相关教程及在线工具,而这里本渣渣使用的就是在线工具或者说是接口!
视频获取方法教程
这里简单的分享视频获取下载的方法,仅供参考学习使用哈,不要滥用,违法用途与本渣渣无关哈!
方法一:浏览器手动调试下载视频
手动的方式需要点击播放视频,用浏览器调试获取到真实视频地址,然后点击下载视频!
步骤一:F12,打开浏览器调试,点击播放视频;
步骤二:点击媒体,可以看到视频的真实链接地址,右键复制;
步骤三:新窗口打开视频地址,播放,可以看到下载按钮,下载视频即可!
方法二:借助在线工具接口
工具一:硕鼠视频链接解析
https://www.flvcd.com/
注意:第一种视频的话可能无法解析,可解析第二种腾讯视频!
工具二:微信视频下载-拈花古佛博客
https://www.15um.com/tools/weixin_v.php
注意:第一种视频的话可能无法解析,可解析第二种腾讯视频!
工具三:视频提取-96编辑器
https://bj.96weixin.com/tools/wechat_video
注意:可解析第一和第二种视频,但必须注册登录账号,需手机实名注册!
Python实现视频获取
最后本渣渣以Python爬虫代码的形式来复盘第二种视频获取的方法,仅分享源码供大家学习参考使用,请不要滥用哈!
硕鼠视频链接解析源码参考
#https://www.52pojie.cn/forum.php?mod=viewthread&tid=1581152&extra=&highlight=%CE%A2%D0%C5%B9%AB%D6%DA%BA%C5&page=1
import os
import re
from time import sleep
import requests
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
def download_url(url):
try:
path = os.getcwd()#获取当前的文件位置
filepath = path + '\\视频'
if os.path.exists(filepath) == False:#判断是否存在filepath,不存在则创建文件夹
os.mkdir(filepath)
URL = 'https://www.flvcd.com/parse.php?format=&kw=' + str(url).replace('/', '%2F').replace(':', '%3A').replace(
'?', '%3F').replace('=', '%3D').replace('&', '%26').replace(';', '%3B').replace('#', '%23')#构造硕鼠的解析链接
print(URL)
headers = {'UserAgent': UserAgent().random}
response = requests.get(URL, headers=headers)
response.encoding = 'gbk'
# print(response.text)
soup = BeautifulSoup(response.text, 'html.parser')
soup = str(soup)
regex_title = re.compile(
r'document.title = "(.*?)" ')
title = re.findall(regex_title, soup)[0]#获取title
# print(title)
regex_href = re.compile(r'href="(.*?)"', re.S)
href = re.findall(regex_href, soup)[9]#获取视频下载地址
# print(href)
video_response = requests.get(href, headers=headers)
print('正在下载{},请稍后。。。。。。'.format(title))
with open(filepath + f'\\{title}.mp4', mode='wb') as f:
f.write(video_response.content)
sleep(10)
print('下载完成!!!')
except:
print(f'下载失败,请确认该文章内含有视频,失败链接是:{url}')
if __name__ == '__main__':
#url = 'http://mp.weixin.qq.com/s?__biz=MjM5MDMyMzMxMg==&mid=2247687337&idx=5&sn=efd74900ff01a778bb0a879a2c6dda30&chksm=a64adbb6913d52a0908e5ae580ae7f3aa7bbb4b32a2271d7a9e9b7875af84362a2c247479125&scene=21#wechat_redirect '
#url="https://mp.weixin.qq.com/s?src=11×tamp=1645693203&ver=3639&signature=VlY0XB4TKTJ3YCJvnPFjd4W9xhiRt3o2GmbU0KNWI42oC0io9wtC8tIe*1u-aIRcsT5Zai*MrTLYXbHiIOSYeLl-tirTSoV7ZFtENKjDhvx9siG2Web4QHeXKzuewPKu&new=1"
url="https://mp.weixin.qq.com/s?src=11×tamp=1645754004&ver=3641&signature=2ZeaW7Mk5jWSmM9u-DRlzUFRUozz26ed1A32E-C7ycDGVH7F53fdJWHmXUJuMaqvEPYZpEWF*5vISO5M9uOiUn0p4uUbTHxFmVDrP9WPKy8uEiaFAQKUJQCdSM*HsLgh&new=1"
download_url(url)
微信视频下载-拈花古佛博客源码参考
#微信公众号文章视频采集
# -*- coding: UTF-8 -*-
import requests
import time,re,os
def get_video(url):
headers={
"Cookie": "PHPSESSID=vohljmefnma3po7agf7duoneef; UM_distinctid=17f2af6b9b1967-028a56375b0041-45410429-1fa400-17f2af6b9b2761; Hm_lvt_05f1e18baffebb865e1b6247c4891139=1645693287; CNZZDATA3278819=cnzz_eid%3D1426889661-1645683231-%26ntime%3D1645694193; Hm_lpvt_05f1e18baffebb865e1b6247c4891139=1645694193",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
apiurl="https://www.15um.com/tools/weixin_v.php"
data={
"url": url,
}
response=requests.post(url=apiurl,data=data,headers=headers,timeout=20)
print(response.status_code)
print(response.content.decode('utf-8'))
spdatas=response.json()['data']
print(f'共有 {len(spdatas)} 个视频!')
if len(spdatas)>1:
for spdata in spdatas:
sphref=spdata['url']
sptitle=spdata['title']
print(sphref,sptitle)
else:
sphref=spdatas[0]['url']
sptitle = spdatas[0]['title']
print(sphref, sptitle)
def down_video(sphref):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
}
path = os.getcwd()#获取当前的文件位置
filepath = path + '\\视频'
if os.path.exists(filepath) == False:#判断是否存在filepath,不存在则创建文件夹
os.mkdir(filepath)
title="cs"
video_response = requests.get(sphref, headers=headers)
print('正在下载{},请稍后。。。。。。'.format(title))
with open(filepath + f'\\{title}.mp4', mode='wb') as f:
f.write(video_response.content)
time.sleep(10)
print('下载完成!!!')
if __name__=='__main__':
#url="https://mp.weixin.qq.com/s?__biz=MzIwMzc3MjYzOQ==&&mid=2247613073&&idx=1&&sn=e9307ab0ff93f760eb49a747499881e5&&chksm=96c93d21a1beb4370948aa2ba2fc00c3dac50177f7a5a3577a52fc20cfbed390297bc0bbb19d&&scene=21#wechat_redirect"
url="https://mp.weixin.qq.com/s?src=11×tamp=1645754004&ver=3641&signature=2ZeaW7Mk5jWSmM9u-DRlzUFRUozz26ed1A32E-C7ycDGVH7F53fdJWHmXUJuMaqvEPYZpEWF*5vISO5M9uOiUn0p4uUbTHxFmVDrP9WPKy8uEiaFAQKUJQCdSM*HsLgh&new=1"
get_video(url)
注意:Cookie需自行替换更新,否则会获取不到视频
视频提取-96编辑器源码参考
#微信公众号文章视频采集
# -*- coding: UTF-8 -*-
import requests
import time,re,os
def get_video(url):
headers={
"Cookie": Cookie,
#"Referer": "https://bj.96weixin.com/tools/wechat_video",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
apiurl="https://bj.96weixin.com/gather/getData"
data={
"url": url,
"type": "video"
}
response=requests.post(url=apiurl,data=data,headers=headers,timeout=20)
print(response.status_code)
print(response.content.decode('utf-8'))
spinfos=response.json()['info']
print(f'共有 {len(spinfos)} 个视频!')
if len(spinfos)>1:
for spinfo in spinfos:
sphref=spinfo['src']
print(sphref)
else:
sphref=spinfos[0]['src']
print(sphref)
down_video(sphref)
def down_video(sphref):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
}
path = os.getcwd()#获取当前的文件位置
filepath = path + '\\视频'
if os.path.exists(filepath) == False:#判断是否存在filepath,不存在则创建文件夹
os.mkdir(filepath)
title="cs1"
video_response = requests.get(sphref, headers=headers)
print('正在下载{},请稍后。。。。。。'.format(title))
with open(filepath + f'\\{title}.mp4', mode='wb') as f:
f.write(video_response.content)
time.sleep(10)
print('下载完成!!!')
if __name__=='__main__':
url="https://mp.weixin.qq.com/s?src=11×tamp=1645754004&ver=3641&signature=2ZeaW7Mk5jWSmM9u-DRlzUFRUozz26ed1A32E-C7ycDGVH7F53fdJWHmXUJuMaqvEPYZpEWF*5vISO5M9uOiUn0p4uUbTHxFmVDrP9WPKy8uEiaFAQKUJQCdSM*HsLgh&new=1"
#url="https://mp.weixin.qq.com/s?src=11×tamp=1645693203&ver=3639&signature=VlY0XB4TKTJ3YCJvnPFjd4W9xhiRt3o2GmbU0KNWI42oC0io9wtC8tIe*1u-aIRcsT5Zai*MrTLYXbHiIOSYeLl-tirTSoV7ZFtENKjDhvx9siG2Web4QHeXKzuewPKu&new=1"
get_video(url)
注意:Cookie需自行填写自己相应账号Cookies
附相关参考:
1.一文教你快速下载微信公众号内的视频~
https://new.qq.com/omn/20210608/20210608A01BWM00.html
2.微信公众号文章音视频下载的几种办法-涵盖PC端和手机端
https://blog.csdn.net/Simon_477/article/details/115713739
3.[Python] 微信公众号文章内的视频下载
https://www.52pojie.cn/thread-1581152-1-1.html