当下很多网站都有做自己的APP端产品,一个优秀的爬虫工程师,必须能够绕过难爬取点而取捷径,这是皆大欢喜的。但是在网上收罗和查阅了无数文档和资料,本人亲测无数次,均不能正常获取HTTPS数据,究其原因是手机端证书安装不正确所致,故编写文章以帮助后来的小伙伴。
当下抓包工具有Fiddler,Charles,wireshark等,手机APP最常用的是Fiddler和Charles,而wireshark适合作为测试用,下面我着重介绍Charles抓包工具的使用。
Charles是抓包工具中的神器,开发者可以使用它方便的抓取http请求,https请求,并支持修改、重放等功能。对于PC端和移动端都非常方便。
1、安装Charles:
随便在网上都可以下载到,这里不做介绍
2、安装好Charles之后,需要进行简单的 配置:
注意:要确保手机和Charles在同一个WIFI环境中
使用ipconfig 查看电脑连接wifi所用的ip:
打开Charles,点击左上角Proxy->Proxy Settings,选中Enabel transparent HTTPproxying。点击ok。Port一般都是8888,这个要和下一步手机中的端口相同
3、配置好Charles后需要进行手机端的配置。
打开手机,设置->WIFI-->常按你手机连接的WIFI-->点击修改网络-->显示高级选择-->选择代理为手动-->主机名填你刚才ipconfig查询到的IP地址,端口号填8888,点击保存。ok,手机端设置好
4、重启Fiddler,此时可以抓取到http的包,如果您只需要抓取http数据,此时已经实现,如果您需要获取https包,请继续往下看
HTTPS请求的获取,需要进行对手机安装证书
1. 如下图,选择在移动设备上安装 Charles 根证书:
下载即可
然后点击SSL_Proxying下的第二个install,如下图:
2. 然后打开手机的浏览器,输入 browse to 后面的地址进行下载,安装即可
正常情况下此时可以正常抓取https数据包,如果此时不能正常抓取https包,不要着急,这里有绝招:在这里不能正常抓取的原因是你的手机上没有正常安装证书,这里我们使用模拟安卓的模拟器进行替代手机进行抓包,我使用的“天天模拟器”,在网上下载天天模拟器,并进行安装,安装后,配置步骤同手机一样。配置完成并成功安装证书后就可以完美的享受i的https抓包过程了。如您遇到其他问题或者不能正常抓包,欢迎您留言。
Fiddler抓包工具教程参考文档:
https://kb.cnblogs.com/page/130367/
http://www.jianshu.com/p/9e05a2522758
http://www.cnblogs.com/zhaoyanjun/p/7068905.html