python - 将特定 URL 的正文响应保存到文件并使用 mitmproxy 对其进行解码

标签 python python-3.x https man-in-the-middle mitmproxy

我正在尝试使用 mitmdump 将“https://example.com/orders ”的正文响应保存并解码到文件中。我找到了一个仅保存对文件的响应的脚本,但它似乎不适用于最新的 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

如何将仅一个 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 一起使用

关于python - 将特定 URL 的正文响应保存到文件并使用 mitmproxy 对其进行解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48119483/

相关文章:

Python - 重写BeautifulSoup函数变得更优雅的技巧

python - 如何使用 openpyxl 设置图表区域的图形属性

python-3.x - pandas 数据框获取上一年同月的滞后值

python - Python 2.7 和 Python 3.3 之间的函数类型检查

paypal 付款完成后返回站点时出现 ssl 错误

python - 如何在pyqt中将数据从对话框窗口检索到主窗口?

Python tkinter Canvas 在启动期间获取可见区域

Python webdriver : driver. get(URL) 无法在单元测试中打开 - 通过控制台工作

java - ec2实例中的服务器返回https流量的最简单方法是什么?

java - 在 JBOSS 6 AS 上配置 TLS 会导致 ERR_SSL_VERSION_OR_CIPHER_MISMATCH(在 Chrome 中)或 ssl_error_no_cypher_overlap(在 Mozilla 中)错误