mitmdump无法使用openpyxl(python包)

时间:2018-03-09 13:27:16

标签: python mitmproxy

我尝试使用Python3的mitmdump和openpyxl包将请求和响应存储到excel中。

执行命令" mitmdump -s body_respXL.py"我得到了以下错误。

  

加载脚本:body_respXL.py插件错误:回溯(最新版本   最后打电话):文件   " /usr/local/Cellar/mitmproxy/3.0.3/libexec/lib/python3.6/site-packages/mitmproxy/addonmanager.py" ;,   第67行,在safecall       yield File" /usr/local/Cellar/mitmproxy/3.0.3/libexec/lib/python3.6/site-packages/mitmproxy/addons/script.py" ;,第77行,勾选       ns = load_script(self.fullpath)File" /usr/local/Cellar/mitmproxy/3.0.3/libexec/lib/python3.6/site-packages/mitmproxy/addons/script.py" ;, line 30,在load_script中       loader.exec_module(m)文件"",第678行,在exec_module文件中   "",219行,in   _call_with_frames_removed文件" body_respXL.py",第1行,在       import openpyxl ModuleNotFoundError:没有名为' openpyxl'

的模块      

忽略的选项:{' web_static_viewer':'',' view_order_reversed':   错误,' console_focus_follow':错误,' web_open_browser':是的,           ' web_port':8081}代理服务器监听http:// *:8080

但是当我做" pip3冻结"我看到包已安装。

下面是python代码 -

import openpyxl

def response(flow):
    if "insert" in flow.request.pretty_url:
        wb = openpyxl.load_workbook("Workbook1.xlsx")
        ws = wb.worksheets[0]
        if flow.request.content:
            ws.cell(row = ws.max_row + 1, column = 1, value=flow.request.content)
        if flow.response.content:
            ws.cell(row = ws.max_row, column = 2, value=flow.response.content)
        wb.save("Workbook1.xlsx")

请帮帮我,谢谢。

1 个答案:

答案 0 :(得分:0)

解决方案。

mitm将在安装时创建它自己的Python环境,在mitm环境中安装软件包后解决了问题。

对于我来说,源文件是在以下位置创建的: /usr/local/Cellar/mitmproxy/3.0.3/libexec/bin/activate