爬虫工程师必带的瑞士军刀 mitmproxy、anyproxy

charles 是非常好用的网络抓包工具,之前推荐过,但不得不提的是它是收费的,而且学习本成比较高,不支持编程来抓包。想充分驾驭 charles 还要折腾一会儿。

直到我发现了 anyproxy,立即放弃了 charles ,anyproxy 是阿里开源功能强大的代理服务器,可用于网络测试抓包等操作。启动 anyproxy 后,在界面上可以看到代理服务器的 ip ,端口默认为 8001,手机 wifi 上设置手动代理后,在电脑上(同一 wifi 的电脑上)打开 ip:8002 的网址,可以看到通过此代理的手机端上的发包情况,每点击一个软件,都可以看到此软件的发包收包情况,也就是一些 get 或 post 请求,爬虫工程师必备工具。

第一次看到时惊呆了,我什么都没有操作,怎么会有网络请求? 原来是一些流氓软件正在偷偷的采集我的数据。

如果你会 javascript ,可以编写 javascript 程序来控制收发包情况。非常灵活。详细使用方法见官方 github 链接:https://github.com/alibaba/anyproxy

当然,你可能问了,如果不会 javascript 怎么办,我只会 python,没关系,轮子早有人造好,请移步 mitmdump :https://mitmproxy.org/#mitmdump

你又问了 mitmdump 是个什么鬼?

mitmproxy 是一个免费的开源交互式 HTTPS 代理,提供命令行操作,web 界面, Python 接口。

命令行

mitmproxy 用于调试,测试,隐私测量和渗透测试。它可用于拦截,检查,修改和重放 Web 流量,例如 HTTP / 1,HTTP / 2,WebSockets 或任何其他受 SSL / TLS 保护的协议。您可以对从 HTML 到 Protobuf 的各种消息类型进行美化和解码,即时拦截特定消息,在到达目的地之前对其进行修改,稍后将它们重播到客户端或服务器。

Web界面

在图形界面中使用 mitmproxy 的主要功能 mitmweb。你喜欢 Chrome浏览器的开发者工具吗?mitmweb 为您提供与类似的体验,以及请求拦截和重播等其他功能。

Python API

编写强大的插件和脚本mitmproxy mitmdump。脚本API提供对mitmproxy的完全控制,可以自动修改消息,重定向流量,可视化消息或实现自定义命令。

(完)

推荐阅读更多精彩内容

  • 摘要:mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,只不...
    朝畫夕拾阅读 993评论 0 2
  • 摘要:mitmproxy是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,只不...
    朝畫夕拾阅读 3,761评论 0 1
  • 使用selenium模拟浏览器进行数据抓取无疑是当下最通用的数据采集方案,它通吃各种数据加载方式,能够绕过客户JS...
    warmi_阅读 9,870评论 5 6
  • 听说师大来了东干族留学生,嗯?白彦虎?曾经的同胞,突然羡读了一番左宗棠,,《其一》 叹于东风叹与泪, 几宵金酒帐醉...
    奕梁阅读 33评论 0 1
  • 今天中午我待在接送站吃完了饭。画了一会儿画。然后开始写老师留的作业了。写完b,p,m,f,之后。我就陪别人玩儿了一...
    张博轩2012阅读 123评论 0 0