Pyhon爬虫,微信公众号文章视频下载爬虫工具源码助手

您所在的位置:网站首页 微信公众号视频下载方法 Pyhon爬虫,微信公众号文章视频下载爬虫工具源码助手

Pyhon爬虫,微信公众号文章视频下载爬虫工具源码助手

#Pyhon爬虫,微信公众号文章视频下载爬虫工具源码助手| 来源: 网络整理| 查看: 265

以前本渣渣分享过公众号文章内容(文字+图片采集),在这里本渣渣继续分享关于公众号文章内的视频内容采集获取下载方式,可能有不少大佬哥们有获取视频的需求,本渣渣搜集整理了相关内容资料,简单的做一些分享及总结,当然仅供参考和学习!

关于微信公众号文章内的视频,一般有两种情况,第一种是视频内容是公众号运营者自己在微信公众号后台上传的视频,第二种是有腾讯视频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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3