前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pyhon爬虫,微信公众号文章视频下载爬虫工具源码助手

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

作者头像
二爷
发布2022-03-29 17:09:06
2.1K1
发布2022-03-29 17:09:06
举报
文章被收录于专栏:二爷记二爷记

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

关于微信公众号文章内的视频,一般有两种情况,第一种是视频内容是公众号运营者自己在微信公众号后台上传的视频,第二种是有腾讯视频logo的腾讯视频,大致是有这两种情况,如有其它也可自行补充哈!

两种视频形式介绍

第一种:运营者后台上传的视频

https://mp.weixin.qq.com/s/XvYeLWSdqFjgHzx_bLfo0w

第二种:带有腾讯视频logo的视频

https://mp.weixin.qq.com/s/cBeB8QbK7Q9HBXsEdKPi4Q

视频获取方法原理

两种视频如果你懂得浏览器调试都可以以手动的方式来获取到视频链接的真实地址,直接复制其地址到播放页面,直接点击下载即可获取到视频!

当然如果你细大佬只,可以直接分享抓包里的数据来获取视频的真实地址,然后通过代码的形式来得到视频,而且网上也有很多相关教程及在线工具,而这里本渣渣使用的就是在线工具或者说是接口!

视频获取方法教程

这里简单的分享视频获取下载的方法,仅供参考学习使用哈,不要滥用,违法用途与本渣渣无关哈!

  1. 方法一:浏览器手动调试下载视频

手动的方式需要点击播放视频,用浏览器调试获取到真实视频地址,然后点击下载视频!

步骤一:F12,打开浏览器调试,点击播放视频;

步骤二:点击媒体,可以看到视频的真实链接地址,右键复制;

步骤三:新窗口打开视频地址,播放,可以看到下载按钮,下载视频即可!

  1. 方法二:借助在线工具接口

工具一:硕鼠视频链接解析

https://www.flvcd.com/

注意:第一种视频的话可能无法解析,可解析第二种腾讯视频!

工具二:微信视频下载-拈花古佛博客

https://www.15um.com/tools/weixin_v.php

注意:第一种视频的话可能无法解析,可解析第二种腾讯视频!

工具三:视频提取-96编辑器

https://bj.96weixin.com/tools/wechat_video

注意:可解析第一和第二种视频,但必须注册登录账号,需手机实名注册!

Python实现视频获取

最后本渣渣以Python爬虫代码的形式来复盘第二种视频获取的方法,仅分享源码供大家学习参考使用,请不要滥用哈!

  • 硕鼠视频链接解析源码参考
代码语言:javascript
复制
#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&timestamp=1645693203&ver=3639&signature=VlY0XB4TKTJ3YCJvnPFjd4W9xhiRt3o2GmbU0KNWI42oC0io9wtC8tIe*1u-aIRcsT5Zai*MrTLYXbHiIOSYeLl-tirTSoV7ZFtENKjDhvx9siG2Web4QHeXKzuewPKu&new=1"
    url="https://mp.weixin.qq.com/s?src=11&timestamp=1645754004&ver=3641&signature=2ZeaW7Mk5jWSmM9u-DRlzUFRUozz26ed1A32E-C7ycDGVH7F53fdJWHmXUJuMaqvEPYZpEWF*5vISO5M9uOiUn0p4uUbTHxFmVDrP9WPKy8uEiaFAQKUJQCdSM*HsLgh&new=1"
    download_url(url)
  • 微信视频下载-拈花古佛博客源码参考
代码语言:javascript
复制
#微信公众号文章视频采集
# -*- 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&timestamp=1645754004&ver=3641&signature=2ZeaW7Mk5jWSmM9u-DRlzUFRUozz26ed1A32E-C7ycDGVH7F53fdJWHmXUJuMaqvEPYZpEWF*5vISO5M9uOiUn0p4uUbTHxFmVDrP9WPKy8uEiaFAQKUJQCdSM*HsLgh&new=1"
    get_video(url)

注意:Cookie需自行替换更新,否则会获取不到视频

  • 视频提取-96编辑器源码参考
代码语言:javascript
复制
#微信公众号文章视频采集
# -*- 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&timestamp=1645754004&ver=3641&signature=2ZeaW7Mk5jWSmM9u-DRlzUFRUozz26ed1A32E-C7ycDGVH7F53fdJWHmXUJuMaqvEPYZpEWF*5vISO5M9uOiUn0p4uUbTHxFmVDrP9WPKy8uEiaFAQKUJQCdSM*HsLgh&new=1"
    #url="https://mp.weixin.qq.com/s?src=11&timestamp=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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与SEO学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 两种视频形式介绍
  • 视频获取方法原理
  • 视频获取方法教程
  • Python实现视频获取
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档