在学习爬虫进阶路上少不了用到一些抓包工具,今天就给大家隆重推荐6款爬虫抓包神器。
爬虫的基本原理就是模拟客户端(可以是浏览器,也有可能是APP)向远程服务器发送 HTTP 请求,我们需要知道目标服务器的 HOST、URI、请求方法、请求参数、请求头、请求体。Web 网站通过 Chrome 浏览器可以找到这些信息。但是对于 APP 爬虫,就显得有些束手无策。这时候必须借用一些抓包工具来辅助我们分析APP背后的秘密。而抓包本质是引入多了一层中间人代理,如下图所示。
补充一个知识点,对于新手来说,需要区分抓包和爬虫是两个不同的概念:抓包是为了查看分析网络请求,是为了了解对方的过程。爬虫则是模拟网络请求,当了解对方后模拟请求获取数据的工具,两者相辅相成,先抓包分析,再程序模拟,就是爬虫的开发过程,以此来达到你爬虫的目的。
Fiddler 是 Windows 平台最好用的可视化抓包工具,也是大家最熟知的 HTTP 代理工具,功能非常强大,除了可以清晰的了解每个请求与响应之外,还可以进行断点设置,修改请求数据、拦截响应内容。
官网下载即可:
https://www.telerik.com/fiddler
此外,还可以自定义规则,通过修改脚本,加入自己的特殊处理,不过因为它是 C# 编写的,如果你要写复杂的脚本,需要懂C#。
过滤器功能使得你可以通过正则表达式规则将你关心的请求显示出来,如果你只需要抓特定网站的数据,这个功能就显得非常有用,可以去除很多干扰信息。
Fiddler 的左下角有个命令行工具叫做 QuickExec,允许你直接输入命令,如上图的命令行指示。
常见的命令有:
Charles 是一款支持跨平台的抓包工具,并且也是 macOS 平台下最好用的抓包分析工具之一,同样提供GUI界面,界面简洁,基本功能包括HTTP、HTTPS 请求抓包,支持请求参数的修改,最新的 Charles 4 还支持 HTTP/2。当然,也同时支持Windows 和 Linux, 不过这款工具是要收费的,免费试用 30 天,试用期过后功能受限。
Charles当前最新版本为4.5.6,官网地址如下:
https://www.charlesproxy.com
Charles 在线破解工具:
https://www.zzzmode.com/mytools/charles/
Charles也常用于一些简单的弱网模拟工具,打开Proxy->Throttle Settings,界面如下:
PS:除此之外,模拟弱网的工具常见的还有:Fiddler、FaceBook工具ATC弱网模拟。
AnyProxy 是 阿里巴巴开源的 HTTP 抓包工具,基于 NodeJS 实现,优点是支持二次开发,可自定义请求处理逻辑,如果你会写JS的话,同时需要做一些自定义的处理,那么AnyProxy 是非常适合的。支持 HTTPS,提供了GUI界面。
GitHub地址:
https://github.com/alibaba/anyproxy
常用特性:
支持https明文代理
支持低网速模拟
支持二次开发,可以用javascript控制代理的全部流程,搭建前端个性化调试环境
提供web版界面,观测请求情况
anyproxy详细使用介绍:
https://www.npmjs.com/package/anyproxy/v/3.10.2
它不仅是跨平台的,而且提供的是命令行交互模式,很有极(zhuang)客(bi)感,而且是由Python语言实现的,对于Pythoner来说,无疑是一大利好福利。mitmproxy主要包含了 3 款工具:
mitmproxy: 带交互的终端界面
mitmdump: mitmproxy 的命令行版本,类似于 tcpdump
libmproxy: 用于 mitmproxy/mitmdump 的库
GitHub 地址:https://github.com/mitmproxy/mitmproxy
mitmproxy官网:
https://mitmproxy.org/
mitmproxy文档介绍:
https://docs.mitmproxy.org/stable/
appium是一个自动化测试开源工具,支持iOS平台和Android平台上的原生应用,web应用和混合应用。它是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性
appium类库封装了标准Selenium客户端类库,实现了Mobile JSON Wire Protocol、W3C、WebDriver spec,同时也定义了官方协议的扩展,为appium用户提供了方便的接口来执行各种设备动作,支持多语言,多平台,Linux必须是桌面系统,使用的Client/Server的设计模式, 扩展了WebDriver协议,使得原操作仍然可用
Appium工作原理:
Appium下载地址:
https://github.com/appium/appium-desktop/releases/tag/v1.19.1
Packet Capture安装在手机的app,功能不多,作为辅助,它是一款免root的app,运行在安卓平台上,用于捕获http/https网络流量嗅探的应用程序。可以捕获网络数据包,并记录它们,使用中间人技术对SSL解密,无须root权限,这个软件使用了Android提供的VpnService api,实现了中间人攻击。
Packet Capture下载地址:
https://apk.co/d/packet-capture-172
https://www.coolapk.com/apk/app.greyshirts.sslcapture