python使用mitmproxy中间人代理傻瓜版

以前曾经用过mitmproxy做中间人代理来做淘宝登陆,但是代码一下子找不到了,于是百度了使用方法,发现完全不如当初自己用的那个简单。各种命令行什么的。所以在这里分享一下曾经找到的最简单的使用方法,纯python脚本,不需要任何命令行操作。

业务逻辑在response;里修改。
貌似现在淘宝如果用selenium就算修改了特征码也过不了滑动验证码了。不知道兄弟们有没有别的方法。我是打算换工具了。手机端hook是一条路,直接用浏览器也是一个解法

# -*- coding: utf-8 -*-
# @Time    : 2019/10/31 16:21
# @Author  : meng_zhihao
# @Email   : 312141830@qq.com
# @File    : test.py
from mitmproxy import proxy, options
from mitmproxy.tools.dump import DumpMaster
from mitmproxy.script import concurrent
from mitmproxy import flowfilter
from mitmproxy import ctx, http
import time

class AddHeader:
    @concurrent
    def request(self, flow):
        print(flow.request.pretty_host)
        # print("handle request: %s%s" % (flow.request.host, flow.request.path))
        # time.sleep(1)
        # print("start  request: %s%s" % (flow.request.host, flow.request.path))

    @concurrent
    def response
Python中,mitmproxy是一个强大的HTTP/S中间人代理工具,它允许你拦截、修改和代理网络流量。当你想要处理大量的请求,或者需要对一组IP地址的连接进行代理时,可以利用mitmproxy代理池(Proxy Pool)功能。 mitmproxy提供了一个`@pools`装饰器,你可以创建一个pool,指定池中的代理服务器列表,并通过代理管理器(ProxyManager)分配这些代理给每个请求。以下是基本步骤: 1. **安装mitmproxy**: 首先确保已经安装了mitmproxy,如果没有,可以用pip安装:`pip install mitmproxy` 2. **创建代理池**: ```python from mitmproxy import options, proxy import os class MyOptions(options.Options): # 添加代理配置选项 http_proxy = "http://your-proxy-list:80" https_proxy = "https://your-proxy-list:80" def configure(self, updated_options): if not updated_options or "anticache" in updated_options: self.options.http_proxy = os.environ.get("HTTP_PROXY", "http://your-proxy-pool") self.options.https_proxy = os.environ.get("HTTPS_PROXY", "https://your-proxy-pool") @proxy.bound_node class MyMaster(proxy.ProxyManager): def __init__(self, options: options.Options) -> None: super().__init__(options) self.configure(options) if __name__ == "__main__": o = MyOptions() m = MyMaster(o) m.run() ``` 这里将代理设置从环境变量获取,如果你有一个文本文件包含多个代理服务器,可以读取并替换为相应列表。 3. **配置代理使用**: 你需要确保每次客户端尝试连接到互联网时,mitmproxy会自动从代理池中选择一个可用的代理服务器进行转发。 4. **监控和管理**: 使用`mitmdump`或`mitmproxy`命令行工具时,代理池的行为将会生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值