Python 新手请教 mitmproxy 多进程问题

2019-01-22 21:30:54 +08:00
 bbbb
2589 次点击
所在节点    Python
8 条回复
momocraft
2019-01-22 21:52:51 +08:00
在 mitmproxy 进程内搞这些方便吗? 你的最终问题是 "用 mitmproxy 拦截连接然后换一个后端服务器" 无法解决的吗?
bbbb
2019-01-22 22:27:42 +08:00
@momocraft 可以… 已经拿到了所有的参数。其实就想找一个简单的方法。
484A4B
2019-01-22 23:19:17 +08:00
另一个进程要做什么事情,拿到 json 中的信息还不够吗
bbbb
2019-01-22 23:30:21 +08:00
@484A4B 拦截到请求了以后还要做其他事,开线程处理有点慢,开进程就涉及到通讯问题了,原始对象不知道如何传。其实就是想另外一个进程分担点任务。
想的流程是这样,将 flow 转为 json 字符串,还原为之前的 flow 对象,然后延用 mitmproxy 的逻辑。
看了初始化 flow 的方法,是读二进制的。转成 json 应该也能还原回来,不知道这样做的方向对不对。
自己埋头苦干,有点晕了。
momocraft
2019-01-24 14:14:10 +08:00
要做这么多很难说是“简单”了,不妨再考虑一下你的目的和手段
bbbb
2019-01-24 16:15:45 +08:00
@momocraft 读了源码满足了需求,目前不可控,总是出现莫名的问题。
"简单"是想用 mitm 原始方法构建请求,整个请求逻辑由 mitm 负责。
在看看不行自己构建请求了。
geekgu
2019-10-14 20:25:26 +08:00
楼主最后解决方案如何,mitmproxy 启动的时候类似一个 web 服务器,没有触发点去处理保存下来的 flow,我在想只是只能保存成比较通用的数据形式,然后再用 requests 等库发请求。
bbbb
2020-03-06 11:10:39 +08:00
@geekgu 算是解决了吧,直接在 `def request(flow: HTTPFlow):` 把请求数据推到了 redis 队列,另外到机器在读取,用 requests 也可以。但是请求上下文的没有去解决。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/529599

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX