使用Qt和mitmproxy开发一个抓取网页短视频的万能工具

目录

实现原理

mitmproxy介绍

功能简介

安装

脚本示例 

如何使用

解释

注意事项

QT工具实现

其他资源


实现原理

使用WebView组件造一工具,工具可输入网页地址并显示网页内容及播放视频。把工具的代理设置指向mitmproxy的端口服务。配合使用mitmproxy的MITM技术,监听和拦截用户在短视频平台上发起的网络请求。MITM技术允许应用程序在数据包从客户端到服务器的传输过程中进行干预,从而捕获和分析请求和响应数据,从响应数据中提取视频的真实下载链接。

在微信小程序等环境中,并不能直接在WebView中配置代理。小程序的WebView组件直接使用的是微信小程序、支付宝小程序等平台提供的WebView实现,这些平台并不直接支持在WebView内设置代理。但在在QT或Android等环境中,WebView组件支持设置代理。这样就可以实现在不改变系统全局代理的情况下,直接造一工具实现对短视频的解析和下载。

注:(以下介绍仅限技术学习和交流,禁止用于其他非法用途。)

mitmproxy介绍

mitmproxy又名中间人攻击代理,是一个抓包工具,类似于WireShark、Filddler,并且它支持抓取HTTP和HTTPS协议的数据包,只不过它是一个控制台的形式操作。另外,它还有两个非常有用的组件,一个mitmdump,它是mitmproxy的命令行接口,可以直接抓取请求数据;另一个是mitmweb,它是一个web程序,通过它可以清楚的观察mitmproxy抓取的请求数据。

为什么选择 mitmproxy

1. 相对于我们常用的 fiddle 代理工具,它是可以跨平台。

2. 相对于跨平台的 charles 代理工具,它是开源免费的。

3. 最重要的一点,也是为什么我们采用 mitmproxy 来进行做 Mock,它支持使用 Python 进行二次开发,这样就可以结合业务进行灵活拓展了。

官方文档

https://docs.mitmproxy.org/stable/

功能简介

  1. 实时拦截、修改 HTTP/HTTPS 请求和响应
  2. 可保存完整的 http 会话,方便后续分析和重放
  3. 支持反向代理模式将流量转发到指定服务器
  4. 支持 macOS 和 Linux上的透明代理模式
  5. 支持用 Python 脚本对 HTTP 通信进行修改

安装

pip install mitmproxy

查看是否安装成功

# 使用以下三个命令中的任意一个即可,这三个命令返回的结果均一致
mitmproxy --version
mitmdump --version
mitmweb --version

mitmproxy默认只能拦截http,想要拦截https那就需要安装证书。

首先到$PYTHON_HOME/Scripts目录下运行一下mitmdump,完成之后在用户家目录下的.mitmproxy文件夹下即会生成的有证书,点击安装即可。

mitmproxy-ca.p12----PKCS12格式证书私钥

mitmproxy-ca.pem----PEM格式证书私钥

mitmproxy-ca-cert.cer----PEM格式证书,与mitmproxy-ca-cert.pem相同只是改变了后辍,适用于部分Android。

mitmproxy-ca-cert.p12----PKCS12格式证书,适用于Windows

mitmproxy-ca-cert.pem----PEM格式证书,适用于大多数非Windows平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.8~7.10练习

目录 1.扑克牌游戏 2.链表基本功能的实现(单项链表) 3.移除链表元素力扣 4.反转链表力扣 5.链表的中间结点 5.返回倒数第k个节点​编辑 6.合并两个有序链表 7.链表基本功能的实现(双向链表) 8.链表分割 1.扑克牌游戏 public…

LightRAG:高效构建和优化大型语言模型应用的 PyTorch 框架

一、前言 随着大语言模型 (LLM) 的蓬勃发展,检索增强生成 (RAG) 技术作为一种将 LLM 与外部知识库结合的有效途径,受到了越来越多的关注。 然而,构建 LLM 应用的真正挑战在于开发者需要根据具体需求进行高度定制化,而现有的 RAG …

Vscode ssh远程连接Linux服务器登录时密码password无法输入

问题 最近在用Vscode远程连接Linux服务器时,在终端提示输入密码password的时候用键盘输入没有反应。 以为是键盘坏了,然后尝试复制粘贴没有用。 后来找到了原因以及解决方法,感谢原帖作者(原贴链接粘在下面) 原因 …

flutter 列表下拉框加搜索

1.使用控件搜索加下拉框dropdown_search: ^0.4.9和获取中文拼音lpinyin: ^1.1.1 2.加入中文查询和首字查询 在当中找到相应的packages,再在SelectDialog.dart当中加入引入拼音搜索 import package:lpinyin/lpinyin.dart; 更改匹配方法manageItemsByFilter使其可…

有必要把共享服务器升级到VPS吗?

根据自己的需求来选择是否升级,虚拟专用服务器 (VPS) 是一种托管解决方案,它以低得多的成本提供专用服务器的大部分功能。使用 VPS,您的虚拟服务器将与在其上运行的其他虚拟服务器共享硬件服务器的资源。但是,与传统的共享托管&am…

Oracle数据库加密与安全

Wallet简介: Oracle Wallet(即内部加密技术TDE( Transparent DataEncryption) TDE是 Oracle10gR2中推出的一个新功能,使用时要保证Oracle版本是在10gR2或者以上 Wallet配置: 1.创建一个新目录,并指定为Wallet目录 /home/oracle…

Python爬虫技术从去哪儿网获取旅游数据,对攻略进行可视化分析,提供全面的旅游攻略和个性化的出行建议

背景 随着信息技术的快速发展和互联网的普及,旅游行业也迎来了数字化和智能化的变革。去哪儿网作为中国领先的在线旅游平台之一,提供了丰富的旅游产品和服务,涵盖了机票、酒店、旅游度假等各个方面。用户通过去哪儿网可以方便地查询、预订和…

C# Path

Path.CombinePath.GetDirectoryNamePath.GetFileNamePath.GetFullPathPath.GetExtensionPath.GetFileNameWithoutExtensionPath.HasExtensionPath.ChangeExtensionPath.GetPathRootPath.IsPathRooted C# 中的 Path 是 System.IO 命名空间中的一个类,提供了用于操作…

el-input-number计数器change事件校验数据,改变绑定数据值后change方法失效问题的原因及解决方法

在change事件中如果对el-input-number绑定的数据进行更改,会出现change事件失效的问题 试过:this.$set()及赋值等方法,都无法解决 解决方法:用$nextTick函数对绑定值进行更改( this.$nextTick(() > { this.绑定…

Java:构造函数与对象

第一章:构造函数揭秘 —— 创造者的第一次触碰 构造函数,顾名思义,是用于创建和初始化对象的特殊方法。它没有返回类型,名字与类名一致。构造函数是对象诞生的第一步,也是最至关重要的一步。让我们通过一个生动的例子…

STM32HAL库+ESP8266+cJSON+微信小程序_连接华为云物联网平台

STM32HAL库ESP8266cJSON微信小程序_连接华为云物联网平台 实验使用资源:正点原子F407 USART1:PA9P、A10(串口打印调试) USART3:PB10、PB11(WiFi模块) DHT11:PG9(采集数据…

JavaScript 判断客户端是手机还是pad

引言 在日常开发中,经常需要根据设备的类型来做不同的适配或逻辑处理。特别是在移动端开发中,判断用户使用的设备类型是手机还是平板电脑是非常常见的需求。本文将介绍使用 JavaScript 判断设备类型的方法,并提供相应的代码示例。 设备类型…

【Soc级系统防御】PCB安全威胁与防御策略:攻击模型与实践指南

本文档深入探讨了印刷电路板(PCB)面临的安全挑战,包括硬件木马、现场修改、盗版和反向工程等攻击方式,并提供了相应的攻击模型、案例研究、实验操作及练习题,旨在提升对PCB安全威胁的认识和防范能力。 目录 您提供的文档内容中包含了第11章的目录信息,以下是该目录部分的…

阿里云通义千

**阿里云通义千问是阿里云自主研发的一款超大规模语言模型**,专门用于深入理解和分析用户输入的自然语言,以便在不同领域和任务中为用户提供智能服务与协助。以下是对阿里云通义千问模型的相关介绍: 1. **模型能力** - **单轮对话能力**&…

sshd -t命令详解

sshd -t命令用于检查sshd_config配置文件的语法错误。它可以帮助你在重启SSH服务器之前验证配置文件的正确性,以避免出现配置错误导致SSH连接问题的情况。 具体来说,sshd -t命令会执行以下操作: 1. 打开并读取sshd_config配置文件。2. 检查…

阿里云操作系统智能助手OS Copilot的实验测评报告

什么是OS Copilot 在老师的介绍下我了解到了阿里云OS Copilot这个产品,它是阿里云推出的一项基于人工智能技术的操作系统,设计用于阿里云Linux操作系统以及其他可能的云上操作系统环境,为用户提供智能化的系统管理和运维支持。 阿里云提供了…

Python数据分析-Excel和 Text 文件的读写操作

1.Excel和 Text 文件的读写操作 1. Text 文件读写包 import sys print(sys.argv[0]) print(__file__) print(sys.path[0]) qopen(sys.path[0] "\out.txt","w",encodingutf-8) q.write(这个是测试一下) q.close() print(done)open 语句可以打开的创建text…

【吊打面试官系列-ZooKeeper面试题】简述 Zookeeper 文件系统?

大家好,我是锋哥。今天分享关于 【简述 Zookeeper 文件系统?】面试题,希望对大家有帮助; 简述 Zookeeper 文件系统? Zookeeper 提供一个多层级的节点命名空间(节点称为 znode)。与文件系统不同的是,这些节…

白平衡说明

白平衡 相机白平衡的起源原理以及作用起源作用 白平衡的原理白平衡的类型应用说明 工业相机的白平衡效果对比一键白平衡的必要性一键白平衡的实现方式 相机白平衡的起源原理以及作用 起源 白平衡(White Balance, WB)概念的起源与色温理论密切相关。色温…

【eNSP模拟实验】单臂路由实现VLAN间通信

实验需求 如下图所示,辅导员办公室需要访问处在不同vlan的学生管理服务器的文件,那么如何实现两台终端相互通信呢?我们可以使用单臂路由的方式来实现。 单臂路由(router-on-a-stick)是指在路由器的一个接口上通过配置…