【Fidder网络抓包+Python爬虫】下载微信小程序视频

首先声明本篇博客以学习为目的,侵权即删。

1. Fidder抓包

       关于fidder软件的安装和配置,这里我就不多赘述了,大家上网都很容易搜到。

1.1 在电脑上打开微信小程序视频播放页以及Fidder软件

在这里插入图片描述

1.2 点击视频播放按钮,并查看Fidder抓到的数据包

       这个时候Fidder软件界面会抓到很多数据流,如果有视频数据的话直接点保存即可,但是一般来说显示为普通响应,但是记得看来源(Process栏为Wechat),别瞅错了!
       然后双击该相应,就可以看到右侧的出现的一系列数据,但一般看Raw项就好,可以看到其视频存储网址(双击网站就可以下载这一小段视频),以及Host等一系列请求头数据。我们可以看到其网址最后下载为.ts文件,且该视频标号为00009(多看几个响应就可以发现其中的规律),这种文件格式比较讨厌,会把一个完整的视频拆分成诸多5-10s长的文件,所以后期需要用到python爬虫,以及视频合并。

m3u8是苹果公司推出一种视频播放标准,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少I/o访问次数,一般存在服务器的内存中),通过m3u8解析出来路径,然后去请求,是现在比较流行的一种加载方式。目前,很多新闻视频网站都是采用这种模式去加载视频。
M3U8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。原视频数据分割为很多个TS流,每个TS流的地址记录在m3u8文件列表中。

在这里插入图片描述

       通过网络抓包工具,我们可以获取视频网站的请求头数据,以及视频存储网址:

项目内容
请求头headers={‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat’, ‘Host’:‘videodest-cdn.xiaodaka.net’}
各视频存储网址‘http://videodest-cdn.xiaodaka.net/video/ochvq0PokL-KKdXSKI4IV1pXAdL41571990548700-’+视频编号+".ts"

2. Python爬虫

2.1 视频下载

       首先使用爬虫测试该视频共被分为多少节,以及各个页面的相应情况(200表示成功响应,423表示响应失败),随后保存诸多片段视频。

import requests
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat', 'Host':'videodest-cdn.xiaodaka.net'}
for i in range(1000000):
    if (i+1)<10:
        k='0'+str(i+1)
    else:
        k=str(i+1)
    link='http://videodest-cdn.xiaodaka.net/video/ochvq0PokL-KKdXSKI4IV1pXAdL41571990548700-000'+k+'.ts'
    path="C:\\Users\\123\\Desktop\\vedio\\"+k+'.ts'
    r=requests.get(link,headers=headers,timeout=20)
    if r.status_code!=200:# 200表示网站成功响应
        break
    print(link)
    print(str(i+1),"页面响应码:",r.status_code)
    ###########################################保存视频
    with open(path,"wb") as f:
        f.write(r.content)
    f.close()

2.2 视频合并

import os
def MergeTs(download_path,hebing_path):
    all_ts = os.listdir(download_path)
    with open(hebing_path, 'wb+') as f:
        for i in range(len(all_ts)):
            ts_video_path = os.path.join(download_path, all_ts[i])
            f.write(open(ts_video_path, 'rb').read())
    print("合并完成!!")

2.3 完整代码

import os
import requests
def MergeTs(download_path,hebing_path):# 视频合并
    all_ts = os.listdir(download_path)
    with open(hebing_path, 'wb+') as f:
        for i in range(len(all_ts)):
            ts_video_path = os.path.join(download_path, all_ts[i])
            f.write(open(ts_video_path, 'rb').read())
    print("合并完成!!")
#############################################
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat', 'Host':'videodest-cdn.xiaodaka.net'}
for i in range(1000000):
    if (i+1)<10:
        k='0'+str(i+1)
    else:
        k=str(i+1)
    link='http://videodest-cdn.xiaodaka.net/video/ochvq0PokL-KKdXSKI4IV1pXAdL41571990548700-000'+k+'.ts'
    path="C:\\Users\\123\\Desktop\\vedio\\"+k+'.ts'
    r=requests.get(link,headers=headers,timeout=20)
    if r.status_code!=200:# 200表示网站成功响应
        break
    print(link)
    print(str(i+1),"页面响应码:",r.status_code)
    ###########################################保存视频
    with open(path,"wb") as f:
        f.write(r.content)
    f.close()
MergeTs("C:\\Users\\123\\Desktop\\vedio", "C:\\Users\\123\\Desktop\\first.mp4")

3. 写在最后

如果视频不是很长的话建议录屏,毕竟录屏多简单…
反之则可以尝试本文方法下载视频。

创作不易,点个赞吧(*^_^*)

### 大众点评微信小程序抓包爬虫方法 对于大众点评微信小程序的数据获取,可以采用抓包的方式来分析其网络请求。由于微信小程序本质上是在微信环境中运行的应用程序,因此可以通过特定工具和技术手段对其进行数据分析。 #### 工具准备 为了实现这一目标,通常需要用到诸如Fiddler或Charles这样的HTTP代理工具来进行流量监控和解密HTTPS通信[^2]。这类工具有助于捕获并解析发送至服务器以及由服务器返回给客户端的所有数据流。 #### 数据接口分析 技术人员已经指出,在某些情况下,微信小程序并未设置严格的访问控制措施,这意味着如果能够成功定位到API端点及其所需参数,则可以直接调用这些服务以获得原始JSON响应中的有用信息。例如,针对商品详情页或其他公开资源页面而言,只需更改URL路径里的唯一标识符(如产品ID),便能轻松检索不同的记录条目。 #### 应对反爬虫机制 值得注意的是,部分网站可能会采取额外的安全措施防止自动化脚本频繁读取敏感资料;而对于像大众点评这样可能存在字体混淆的情况,建议利用专门设计用来破解此类障碍的服务——比如百度提供的在线字体编辑器可以帮助识别被转换过的字符集,并将其还原成正常显示的文字形式以便进一步处理[^4]。 ```python import requests def fetch_data(item_id): url = f"https://api.dianping.com/v1/item/{item_id}" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', # Add necessary header fields here based on your observation from the packet capture. } response = requests.get(url, headers=headers) if response.status_code == 200: data = response.json() return data else: raise Exception(f"Failed to retrieve item {item_id}: HTTP Status Code {response.status_code}") # Example usage of function with a hypothetical ID value try: result = fetch_data('example_item_id') except Exception as e: print(e) ``` 此代码片段展示了如何构建一个简单的Python函数`fetch_data()`去模拟浏览器行为并向指定的目标发起GET请求。请注意实际应用时需依据具体情况进行调整优化,特别是要确保遵守各平台的相关规定和服务条款。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chaoql

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值