吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6324|回复: 38
收起左侧

[Python 转载] 微信公众号文章内的视频下载

  [复制链接]
默不言 发表于 2022-1-26 21:49
本帖最后由 默不言 于 2022-1-26 21:54 编辑


爬取步骤:

  第一步:获取文章链接

  第二步:将链接放到硕鼠里面解析,获取视频下载地址

1.获取文章链接

  文章链接直接使用默认浏览器打开文章,然后复制链接即可

2.使用硕鼠解析链接

  将链接放到硕鼠里面进行解析,然后对比文章的链接和硕鼠解析访问的链接,找到其中部分的内容替换公式。(因为硕鼠解析访问的链接对“=”,“\”等符号进行了转换,所以需要先将其规律找到,然后构造替换关系式。

  

替换公式:

文章链接:https://mp.weixin.qq.com/s?__biz=MzIwMzc3MjYzOQ==&&mid=2247613073&&idx=1&&sn=e9307ab0ff93f760eb49a747499881e5&&chksm=96c93d21a1beb4370948aa2ba2fc00c3dac50177f7a5a3577a52fc20cfbed390297bc0bbb19d&&scene=21#wechat_redirect

硕鼠解析访问的链接:https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzIwMzc3MjYzOQ%3D%3D%26amp%3Bmid%3D2247613073%26amp%3Bidx%3D1%26amp%3Bsn%3De9307ab0ff93f760eb49a747499881e5%26amp%3Bchksm%3D96c93d21a1beb4370948aa2ba2fc00c3dac50177f7a5a3577a52fc20cfbed390297bc0bbb19d%26amp%3Bscene%3D21%23wechat_redirect

/  —> %2F
: —> %3A
?—> %3F
= —> %3D
& —> %26
;—> %3B

—> %23

  

  硕鼠解析可以直接返回得到文章内的视频下载链接,根据获得的链接进行视频下载即可。

  代码

import os
import re
from time import sleep
import requests
from fake_useragent import UserAgent
import random
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': 'str(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 '

    download_url(url)

  

  

  一开始以为直接使用python获取文章的网页源代码可以直接获取视频的下载链接,但是返回的结果并没有出现,仔细看代码才知道采用了动态加载视频,所以想要直接获取是不现实的。奈何我是一个小白,本来想就此放弃,但是想到要下载的视频有好几百个,一个一个打开然后再用IDM下载,人都会麻了。在网上找了很多方式都没解决,还好最后发现硕鼠可以解析(硕鼠牛逼),就尝试着构造访问硕鼠的方式获取下载视频。

  上面的代码针对的是单个视频,需要批量的可以自己更改一下代码就行。

  ps:有没有大佬推荐下怎么学习js逆向和解决动态加载的爬虫资料或者课程,目前卡死在这里了。

免费评分

参与人数 4吾爱币 +9 热心值 +4 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
hshcompass + 1 热心回复!
xaibin + 1 + 1 谢谢@Thanks!
simon21 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 默不言 发表于 2022-1-27 19:51
a2523188267 发表于 2022-1-27 00:16
对公众号里的某篇里的所有链接能批量抓取下载吗

可以先试试硕鼠能不能把所有的视频链接都解析出来,可以的话就可以做到,只是需要更改下代码而已
 楼主| 默不言 发表于 2022-1-27 19:35
lzspain 发表于 2022-1-27 08:55
电脑上在安装有idm插件的浏览器打开网址,手机上在具有视频获取功能的浏览器(IDM下载器自带浏览器)上打开 ...

一两个视频无所谓,但是我需要下载几百个
simon21 发表于 2022-1-26 23:17
先收藏了!~期待下次看到你的解题~~
因为我也有这个烦恼。。。
头像被屏蔽
又要取名字 发表于 2022-1-26 23:51
提示: 作者被禁止或删除 内容自动屏蔽
a2523188267 发表于 2022-1-27 00:16
对公众号里的某篇里的所有链接能批量抓取下载吗
CCQc 发表于 2022-1-27 00:45
感谢分享
吾爱蛋蛋 发表于 2022-1-27 00:56
我想爬自己的微信视频怎么爬用电脑微信版本
wecanfly9292 发表于 2022-1-27 06:26
没有看懂怎么使用
头像被屏蔽
东方天涯 发表于 2022-1-27 07:48
提示: 作者被禁止或删除 内容自动屏蔽
istat 发表于 2022-1-27 07:50
东方天涯 发表于 2022-1-27 07:48
不需要硕鼠啊,很多在线插件都能做到

比如呢哈哈
ysy2001 发表于 2022-1-27 08:00
没有看懂,谢谢分享。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表