我需要使用mitmproxy绕过代理并使用GET请求捕获Web数据。 我正在使用Windows 7和python 2.7以及mitmproxy python
我尝试了以下代码:
#!/usr/bin/env python
"""
This example shows how to build a proxy based on mitmproxy's Flow
primitives.
Note that request and response messages are not automatically replied to,
so we need to implement handlers to do this.
"""
import sys,os
import os
import cStringIO
import threading
import thread
import exceptions
import gc
from libmproxy import proxy, flow
from libmproxy.proxy import config
from libmproxy.proxy import server
from libmproxy.proxy.server import ProxyServer
from libmproxy.platform.windows import TransparentProxy
class MyMaster(flow.FlowMaster):
def run(self):
try:
flow.FlowMaster.run(self)
except KeyboardInterrupt:
self.shutdown()
def responseheaders(context, flow):
ct = flow.response.headers["Content-Type"]
if ct and len(ct) > 0 and ct[0].startswith("application/"):
flow.stream = True
print "streaming"
def handle_request(self, r):
print r
f = flow.FlowMaster.handle_request(self, r)
if f:
def run():
r.reply()
return f
threading.Thread(target=run).start()
else:
return null
def handle_response(self, r):
f = flow.FlowMaster.handle_response(self, r)
if f:
def run():
r.reply()
return f
threading.Thread(target=run).start()
else:
return null
config = proxy.config.ProxyConfig(
#ca_file=os.path.expanduser("~\.mitmproxy\mitmproxy-ca.pem")
confdir=os.path.realpath('.\\conf')#, mode="transparent"
)
gc.enable()
gc.set_threshold(250, 10, 10)
print gc.get_threshold()
state = flow.State()
server = ProxyServer(config, 8080)
#server = TransparentProxy()
m = MyMaster(server, state)
TransparentProxy().setup()
#proxifier = TransparentProxy()
#proxifier.start()
print "got here"
m.run();
但是有些错误:
confdir=os.path.realpath(r'C:\Users\rnive\Documents\certificates') ``#,mode="transparent"
TypeError: __init__() got an unexpected keyword argument 'confdir'
有关纠正此错误的任何帮助。 通过双击mitmproxy-ca-cert.p12文件导入mitmproxy CA并在chrome浏览器中加载mitm.it,得到如下内容:
如果你能看到这一点,那么流量就不会通过mitmproxy。
有关如何统一以及如何纠正TypeError的任何帮助!