将来自特定 URL 的 body 响应保存到文件并使用 mitmproxy 对其进行解码
Save body response from specific URL to file and decode it using mitmproxy
我正在尝试使用 mitmdump 将来自“https://example.com/orders”的 body 响应保存并解码到文件中。我找到了一个只保存对文件的响应的脚本,但它似乎不适用于最新的 mitmproxy。
from mitmproxy.models import decoded
def response(context, flow):
with decoded(flow.response): # automatically decode gzipped responses.
with open("body.txt","ab") as f:
f.write(flow.response.content)
当我 运行 显示脚本错误消息时:
Script error: Traceback (most recent call last):
File "save_body.py", line 1, in <module>
from mitmproxy.models import decoded
ImportError: No module named 'mitmproxy.models'
我的操作系统和版本:
Mitmproxy version: 2.0.2 (release version)
Python version: 3.5.2
Platform: Linux-4.10.0-28-generic-x86_64-with-Ubuntu-16.04-xenial
SSL version: OpenSSL 1.0.2g 1 Mar 2016
Linux distro: Ubuntu 16.04 xenial
如何将解码后的 body 仅从一个 URL(不包括其他 URL)保存到文件中?以及如何操作:如果来自 URL 的请求需要重复,我需要 mitmdump 来覆盖 "body.txt"?
我找到了一个解决方案,这个简单的 python 脚本将响应正文写入文件,如果请求重复 - 每次都会覆盖它。
import mitmproxy
def response(flow):
if flow.request.pretty_url.endswith("example.com/orders"):
with open("orders.html","wb") as f:
f.write(flow.response.content)
将此脚本保存到 save_body.py
并与 mitmdump -s save_body.py
一起使用
我正在尝试使用 mitmdump 将来自“https://example.com/orders”的 body 响应保存并解码到文件中。我找到了一个只保存对文件的响应的脚本,但它似乎不适用于最新的 mitmproxy。
from mitmproxy.models import decoded
def response(context, flow):
with decoded(flow.response): # automatically decode gzipped responses.
with open("body.txt","ab") as f:
f.write(flow.response.content)
当我 运行 显示脚本错误消息时:
Script error: Traceback (most recent call last):
File "save_body.py", line 1, in <module>
from mitmproxy.models import decoded
ImportError: No module named 'mitmproxy.models'
我的操作系统和版本:
Mitmproxy version: 2.0.2 (release version)
Python version: 3.5.2
Platform: Linux-4.10.0-28-generic-x86_64-with-Ubuntu-16.04-xenial
SSL version: OpenSSL 1.0.2g 1 Mar 2016
Linux distro: Ubuntu 16.04 xenial
如何将解码后的 body 仅从一个 URL(不包括其他 URL)保存到文件中?以及如何操作:如果来自 URL 的请求需要重复,我需要 mitmdump 来覆盖 "body.txt"?
我找到了一个解决方案,这个简单的 python 脚本将响应正文写入文件,如果请求重复 - 每次都会覆盖它。
import mitmproxy
def response(flow):
if flow.request.pretty_url.endswith("example.com/orders"):
with open("orders.html","wb") as f:
f.write(flow.response.content)
将此脚本保存到 save_body.py
并与 mitmdump -s save_body.py
一起使用