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 + '\n')的意思是把抓取到的内容写入json文件,\n是换行的意思,写入一条换一行。
以上是我这次的内容,主要讲了如何输出不同颜色的日志和把抓取到的内容写入JSON文件。下期鹏鹏会讲mitmdump的其他应用。欢迎大家关注公众号“跟着鹏鹏学测试”从此测试不迷路!
扫描二维码
关注我们
微信号 : GZPPXCE
mitmdump+python的使用(代码篇)的更多相关文章
- 零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)
好,现在进入高阶代码篇. 目的: 爬取昆明市中学的兴趣点POI. 关键词:中学 已有ak:9s5GSYZsWbMaFU8Ps2V2VWvDlDlqGaaO 昆明市坐标范围: 左下角:24.390894 ...
- Python开发【第一篇】:初识Python
初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
- [资料分享]Python视频教程(基础篇、进阶篇、项目篇)
Python是一种开放源代码的脚本编程语言,这种脚本语言特别强调开发速度和代码的清晰程度.它可以用来开发各种程序,从简单的脚本任务到复杂的.面向对象的应用程序都有大显身手的地方.Python还被当作一 ...
- python 面向对象(进阶篇)
上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- Python开发【第二篇】:初识Python
Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...
- fw:学好Python必读的几篇文章
学好Python必读的几篇文章 from:http://blog.csdn.net/hzxhan/article/details/8555602 分类: python2013-01-30 11:52 ...
- 【python自动化第十一篇】
[python自动化第十一篇:] 课程简介 gevent协程 select/poll/epoll/异步IO/事件驱动 RabbitMQ队列 上节课回顾 进程: 进程的诞生时为了处理多任务,资源的隔离, ...
- Python 学习 第十篇 CMDB用户权限管理
Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...
- Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
随机推荐
- 最小生成树 状压+prim hdu2489
Minimal Ratio TreeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- CF894B Ralph And His Magic Field
题目链接:http://codeforces.com/contest/894/problem/B 题目大意: 往一个 \(n \times m\) 的网格中填数字 \((1 \le n,m \le 1 ...
- Linux——vim操作
查看文件:vim 文件名 进入vim命令后: Shift+g:到达文件底部 /搜索内容:搜索文件中字符串:点击“N”键,查看下一个搜索内容位置
- APP定位元素之UiSelector
1.UiSelector 类介绍 功能:通过各种属性与节点关系定位组件 操作步骤:找到对象->操作对象 2.四中匹配关系的介绍 (1)完全匹配 (2)包含匹配 (3)正则匹配 (4)起始匹 例子 ...
- 日期类之SimpleDateFormat
1.System 类下的currentTimeMillis();2.Date类:java.util.Date及其子类java.sql.Date 如何创建实例:其下的方 ...
- Spring/SpringBoot常用注解总结
转自:[Guide哥] 0.前言 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使 ...
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理
在我们一般开发的系统界面里面,列表页面是一个非常重要的综合展示界面,包括有条件查询.列表展示和分页处理,以及对每项列表内容可能进行的转义处理,本篇随笔介绍基于Vue +Element基础上实现表格列表 ...
- 【Hadoop】Hadoop的安装,本地模式、伪分布模式的配置
Download hadoop-2.7.7.tar.gz 下载稳定版本的hadoop-2.7.7.tar.gz(我用的2.6.0,但是官网只能下载2.7.7的了) Required Software ...
- Java实现 LeetCode 812 最大三角形面积 (暴力)
812. 最大三角形面积 给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积. 示例: 输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0] ...
- Java实现 蓝桥杯VIP 算法训练 统计字符次数
算法训练 统计字符次数 时间限制:1.0s 内存限制:512.0MB 输入一个字符串(长度在100以内),统计其中数字字符出现的次数. 样例输入 Ab100cd200 样例输出 6 import ja ...