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 + '\n')的意思是把抓取到的内容写入json文件,\n是换行的意思,写入一条换一行。

 

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

 

扫描二维码

关注我们

微信号 : GZPPXCE

mitmdump+python的使用(代码篇)的更多相关文章

  1. 零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)

    好,现在进入高阶代码篇. 目的: 爬取昆明市中学的兴趣点POI. 关键词:中学 已有ak:9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 昆明市坐标范围: 左下角:24.390894 ...

  2. Python开发【第一篇】:初识Python

    初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  3. [资料分享]Python视频教程(基础篇、进阶篇、项目篇)

    Python是一种开放源代码的脚本编程语言,这种脚本语言特别强调开发速度和代码的清晰程度.它可以用来开发各种程序,从简单的脚本任务到复杂的.面向对象的应用程序都有大显身手的地方.Python还被当作一 ...

  4. python 面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  5. Python开发【第二篇】:初识Python

    Python开发[第二篇]:初识Python   Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  6. fw:学好Python必读的几篇文章

    学好Python必读的几篇文章 from:http://blog.csdn.net/hzxhan/article/details/8555602 分类: python2013-01-30 11:52  ...

  7. 【python自动化第十一篇】

    [python自动化第十一篇:] 课程简介 gevent协程 select/poll/epoll/异步IO/事件驱动 RabbitMQ队列 上节课回顾 进程: 进程的诞生时为了处理多任务,资源的隔离, ...

  8. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  9. Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)

    Python 面向对象(初级篇)   51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

随机推荐

  1. 最小生成树 状压+prim hdu2489

    Minimal Ratio TreeTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  2. CF894B Ralph And His Magic Field

    题目链接:http://codeforces.com/contest/894/problem/B 题目大意: 往一个 \(n \times m\) 的网格中填数字 \((1 \le n,m \le 1 ...

  3. Linux——vim操作

    查看文件:vim 文件名 进入vim命令后: Shift+g:到达文件底部 /搜索内容:搜索文件中字符串:点击“N”键,查看下一个搜索内容位置

  4. APP定位元素之UiSelector

    1.UiSelector 类介绍 功能:通过各种属性与节点关系定位组件 操作步骤:找到对象->操作对象 2.四中匹配关系的介绍 (1)完全匹配 (2)包含匹配 (3)正则匹配 (4)起始匹 例子 ...

  5. 日期类之SimpleDateFormat

    1.System 类下的currentTimeMillis();2.Date类:java.util.Date及其子类java.sql.Date                  如何创建实例:其下的方 ...

  6. Spring/SpringBoot常用注解总结

    转自:[Guide哥] 0.前言 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使 ...

  7. 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理

    在我们一般开发的系统界面里面,列表页面是一个非常重要的综合展示界面,包括有条件查询.列表展示和分页处理,以及对每项列表内容可能进行的转义处理,本篇随笔介绍基于Vue +Element基础上实现表格列表 ...

  8. 【Hadoop】Hadoop的安装,本地模式、伪分布模式的配置

    Download hadoop-2.7.7.tar.gz 下载稳定版本的hadoop-2.7.7.tar.gz(我用的2.6.0,但是官网只能下载2.7.7的了) Required Software ...

  9. Java实现 LeetCode 812 最大三角形面积 (暴力)

    812. 最大三角形面积 给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积. 示例: 输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0] ...

  10. Java实现 蓝桥杯VIP 算法训练 统计字符次数

    算法训练 统计字符次数 时间限制:1.0s 内存限制:512.0MB 输入一个字符串(长度在100以内),统计其中数字字符出现的次数. 样例输入 Ab100cd200 样例输出 6 import ja ...