zoukankan      html  css  js  c++  java
  • mitmdump+python的使用(代码篇)

    mitmproxy+python代码篇

    一、上个推文我们介绍了mitmdump的简单操作,下面我们开始学习,mitmdump配合python脚本的使用。第一点先讲日志输出。请看图片



           先导入ctx模块:from mitmproxy import ctx。这个模块主要用于日志的输出。日志输出可以控制颜色

      ctx.log.info      # 日志输出颜色为白色
      ctx.log.warn     # 日志输出颜色为黄色
      ctx.log.error     # 日志输出颜色为红色

      我们运行脚本看看效果

           我们可以看到地址、请求方式、请求体都是白色的。头部信息是黄色的。URL是红色的。这边只是做一个简单的演示,颜色可以自己修改。

           我们看到整段代码有两个模块。这两个模块在Python中称之为函数,也可以叫做方法。def request(flow): 在这里面request是函数名,你可以自己设置,但是我们在写mitmdump相关脚本的时候为了更好的辨认,所有我们统一把请求部分的代码命名成request,把响应部分的代码命名为response。括号里(flow)是一个参数。当我们运行mitmdump的时候,每次请求会通过flow传入我们写的函数。这时候我们就可以看到结果啦!

    二、学会了日志输出,会发现我们可以拿到好多数据,我们可以把这些数据存储下来进行更多的操作。下面鹏鹏给大家讲讲如何对抓取的数据进行保存。大家看代码:

           这边鹏鹏想把抓取到的内容保存到JSON文件里所以这里需要导入一个JSON的包,这段代码需要注意的一个地方就是,在运行这段代码之前一定要新建两个空的JSON文件用来保存请求内容和响应内容。

            这时候我们去cmd界面运行后,所抓取的内容都会存入这两个文件夹中。

            代码详解:request代码中的d只是一个变量名,可以随便设置。d是一个字典。字典里存着URL,请求方式和请求体。这里可以随着自己的需要去增减。增加办法是“key”:“value”;因为json文件只能存入字符串格式。所以我们需要用json_d = json.dumps(d)来把他转为字符串格式;fp也是一个变量名,你可以随便更改,它主要功能是打开这个路径下的JSON文件,以追加(a+)的方式写入,编码为UTF-8。;fp.write(json_d + ' ')的意思是把抓取到的内容写入json文件, 是换行的意思,写入一条换一行。

     

    以上是我这次的内容,主要讲了如何输出不同颜色的日志和把抓取到的内容写入JSON文件。下期鹏鹏会讲mitmdump的其他应用。欢迎大家关注公众号“跟着鹏鹏学测试”从此测试不迷路!

     

    扫描二维码

    关注我们

    微信号 : GZPPXCE

  • 相关阅读:
    Windows下载Vim
    分享:分享几个程序员使用的网站
    分享:C语言大礼包(PDF)
    将vscode打造成强大的C/C++ IDE
    最适合做C/C++开发的IDE
    bzoj 2244
    bzoj 1492
    bzoj 3262
    bzoj 1176
    bzoj 2961
  • 原文地址:https://www.cnblogs.com/Kevin-kong/p/13130372.html
Copyright © 2011-2022 走看看