大家好,我是阿辰,今天教大家如何使用MitmProxy抓包工具。

玩爬虫的小伙伴都知道,抓包工具除了MitmProxy外,还有Fiddler、Charles以及浏览器netwrok等

既然都有这么多抓包工具了,为什么还要会用MitmProxy呢??今天教大家使用MitmProxy抓包工具的原因,主要有以下几点:

  1. 不需要安装软件,直接在线(浏览器)进行抓包(包括手机端和PC端)

  2. 配合Python脚本抓包改包(下面会有案例)

  3. 抓包过程的所有数据包都可以自动保留到txt里面,方便过滤分析

  4. 使用相对简单,易上手。

1

配置MitmProxy

MitmProxy可以说是客户端,也可以说是一共python库

方式一:客户端

https://mitmproxy.org/downloads/

在这个地址下可以下载对应的客户端安装即可

方式二:Python库

pip install mitmproxy

通过这个pip命令可以下载好MitmProxy,下面将会以Python库的使用方式给大家讲解如何使用(推荐方式二)

2

启动MitmProxy

MitmProxy启动有三个命令(三种模式)

  1. mitmproxy,提供命令行界面

  2. mitmdump,提供一个简单的终端输出(还可以配合Python抓包改包)

  3. mitmweb,提供在线浏览器抓包界面

mitmdump启动

mitmdump -w d://lyc.txt

这样就启动mitmdump,接着在本地设置代理Ip是本机IP,端口8080

安装证书

访问下面这个链接

http://mitm.it/

可以选择自己的设备(window,或者Android、Apple设备去)安装证书。

然后随便打开一个网页,比如百度

这里是因为证书问题,提示访问百度提示https证书不安全,那么下面开始解决这个问题,因此就引出了下面的这种启动方式

浏览器代理式启动

哪一个浏览器都可以,下面以Chrome浏览器为例(其他浏览器操作一样)

先找到chrome浏览器位置,我的chrome浏览器位置如下图

通过下面命令启动

"C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors

--proxy-server是设置代理和端口

--ignore-certificate-errors是忽略证书

然后会弹出来Chrome浏览器,接着我们搜索知乎

在cmd中就可以看到数据包

这些文本数据可以在编程中进行相应的操作,比如可以放到python中进行过来监听处理。

3

启动Mitmweb

新开一个cmd(终端)窗口,输入下来命令启动mitmweb

mitmweb

之后会在浏览器自动打开一个网页(其实手动打开也可以,地址就是:http://127.0.0.1:8081)

现在页面中什么也没有,那下面我们在刷新一个知乎页面

重点:关闭mitmproxy终端!关闭mitmproxy终端!关闭mitmproxy终端!

如果不改变在mitmweb中获取不到数据,数据只在mitmproxy中,因此需要关闭mitmproxy这个命令终端

刷新知乎页面之后如下:

在刚刚的网页版抓包页面就可以看到数据包了

并且还包括https类型,比如查看其中一个数据包,找到数据是对应的,说明抓包成功。

4

配合Python脚本

mitmproxy代理(抓包)工具最强大之处在于对python脚步的支持(可以在python代码中直接处理数据包)

下面开始演示,先新建一个py文件(lyc.py)

from mitmproxy import ctx# 所有发出的请求数据包都会被这个方法所处理
# 所谓的处理,我们这里只是打印一下一些项;当然可以修改这些项的值直接给这些项赋值即可
def request(flow):# 获取请求对象request = flow.request# 实例化输出类info = ctx.log.info# 打印请求的urlinfo(request.url)# 打印请求方法info(request.method)# 打印host头info(request.host)# 打印请求端口info(str(request.port))# 打印所有请求头部info(str(request.headers))# 打印cookie头info(str(request.cookies))
# 所有服务器响应的数据包都会被这个方法处理
# 所谓的处理,我们这里只是打印一下一些项
def response(flow):# 获取响应对象response = flow.response# 实例化输出类info = ctx.log.info# 打印响应码info(str(response.status_code))# 打印所有头部info(str(response.headers))# 打印cookie头部info(str(response.cookies))# 打印响应报文内容info(str(response.text))

在终端中输入一下命令启动

mitmdump.exe -s lyc.py

‍‍‍‍‍‍‍(PS:这里需要通过另一个端启动浏览器)

"C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors

然后访问网页(http://www.chenlove.cn),这里就以我自己的个人网站为例

在终端中就可以看到信息

这些信息就是我们在lyc.py中指定的显示信息。

PS:

在手机上配置好代理之后,mitmproxy同样可以抓取手机端数据,这里的具体操作和我之前这篇文章一样【以某乎为实战案例,教你用Python爬取手机App数据】,只不过是抓包工具不一样而已。

5

小结

  1. 不需要安装软件,直接在线(浏览器)进行抓包(包括手机端和PC端)

  2. 配合Python脚本抓包改包。

  3. 抓包过程的所有数据包都可以自动保留到txt里面,方便过滤分析

  4. 使用相对简单,易上手。

最后说一声:原创不易,求给个赞、在看、评论

推荐阅读

实操案例!手把手教你画城市轮播地图(文末送书)

实战|教你爬取全国火锅店数量,并利用地图可视化展示

手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示

实战|手把手教你如何使用抓包神器MitmProxy相关推荐

  1. 手把手教你用 wireshark 抓包

    不少人觉得抓包是一个很高级的东西,感觉涉及到了网络的知识,相信不少从业互联网行业的人对抓包是没有概念的,做web开发的同学可能比较熟悉使用 chrome 的开发者面板来进行抓包,但是对于 wiresh ...

  2. 手把手教你Python如何抓包~【异常详细版】

    嗨害大家好鸭!我是小熊猫❤ 很多小伙伴在后台问我: 数据来源怎么找啊,怎么抓包? 其实很简单,多操作几遍就记住啦~ ~- 今天咱们通过三个案例来展示一下 有什么python相关报错解答自己不会的.或者 ...

  3. 5分钟教程,手把手带你安装使用抓包神器:Whistle ,内含精选爬虫资料

    先来看看Whistle 来到查看抓包请求的页面,可见显示十分的全面 还能显示树状图,根据域名进行区分,功能十分强大! 安装步骤 1.安装Node 因为Whistle是基于Node实现的跨平台web调试 ...

  4. 手把手教你玩转ARP包(一)

    原文地址:http://blog.csdn.net/piggyxp/article/details/19606 前   言 首先要感谢网络安全资深专家卢湖川博士以及VC网络版的limin朋友提供的资料 ...

  5. 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  6. 手把手教你使用Python抓取QQ音乐数据!

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  7. aws python sns_手把手教你用Python抓取AWS的日志(CloudTrail)数据

    原标题:手把手教你用Python抓取AWS的日志(CloudTrail)数据 作者: Gang TAO 大数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的Cl ...

  8. 【爬虫】Yhen手把手教你爬取表情包,让你成为斗图界最靓的仔!

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业用途,转载请说明出处,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/art ...

  9. python爬取qq音乐歌曲链接为什么播放不出来_手把手教你使用Python抓取QQ音乐数据(第一弹)...

    原标题:手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. ...

最新文章

  1. 和12岁小同志搞创客开发:手撕代码,做一款节拍电子鼓
  2. Intent携带额外的数据的方法
  3. 【Python】调用百度云API驾驶行为分析 Driver Behavior
  4. 【theano-windows】学习笔记四——theano中的条件语句
  5. 怎么让qt发声_第3部分:添加网络字体-让我们的单词发声
  6. mysql if 多个_MySQL使用IF语句CONCAT多个字段
  7. 数据结构之顺序循环队列
  8. mybatis初始化mysql_SimpleMybatisMysql
  9. linux离线安装httpd服务,Linux系列之离线安装Apache HTTP
  10. java 错误码设计_关于Java中异常的设计
  11. OVM-V1.2正式发布,新增实时监控功能,支持一键升级
  12. 工作中一些环境问题解决记录
  13. CUDA的内存泄露问题及解决办法
  14. 越狱苹果抹掉数据怎么恢复cydia红字黄字闪退(淘宝30块买的)
  15. doc、docx文档批量合并
  16. 《数据结构与算法分析》回溯算法之博弈——三连棋(tic tac toe)人机对战AI设计(αβ枝减)
  17. Linux rpm -ivm,PowerLinux 7R1项目实施手册PDF
  18. Linux之父:我们都老了,但Linux维护后继无人
  19. 前馈神经网络【BP神经网络】【newff函数】
  20. 前端入门css学习笔记(十一)-----溢出属性之空余空间

热门文章

  1. PKS部署难点:NSX Manager API证书
  2. 给你一个智能音响,你怎么测?
  3. API管理神器—Apipost
  4. 三坐标检测基础知识:温度对三坐标测量结果的影响
  5. Unity3DGame学习笔记(4):射箭游戏
  6. 点成分享 | 结核杆菌培养基的制备全过程
  7. 库存管理软件免费版软件哪个好用?
  8. TC (Teamcenter) 许可证解决方案
  9. 智能传感器的应用领域
  10. TMS320F28335项目开发记录10_28335之SCI模块