Python爬取手机APP很难?不会配置Fiddler?一文了解所有消除障碍
欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。
工具选择
比较常用的工具有两个:Charles 和 Fiddler,两个工具功能大致一样。相对而言,Charles 界面更简洁,但是免费版的 Charles 每隔半小时会重启,可以用破解的 jar 包解决此问题。Fiddler 则是免费的,几年前 Fiddler 不支持 OS 系统的,貌似去年开始也支持了,所以 Fiddler 在 Windows、OS 和 Linux 上都可以免费使用,可以抓取网页和 APP信息。
Fiddler 下载安装
因 Fiddler 是免费的,而且功能强大,今天我就讲讲 Fiddler 的安装使用。
在官网选择你对应的系统下载,下载前需要填些资料,填好了点击下载即可。
抓包原理
Fiddler 抓包是在客户端和服务器之间建立一个代理服务器,监听本机发出的请求和服务器返回的响应结果。客户端的所有请求都要先经过 Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过 Fiddler 然后发送到客户端。
Fiddler设置
Fiddler 默认是只能抓取 http 网络格式的,所以我们要先设置下使 Fiddler 可以获取到 https 网络格式。首先菜单栏 Tools→ Options→HTTPS 进去设置。勾选下图中这两项。弹出是否信任的提示直接确认就可以。
然后将允许远程连接打开,菜单栏打开 Tools->Options->Connections,勾选 Allow remote computers to connect 选项,勾选时会有重启 Fiddler 后生效的提示。8888 为默认端口号,可修改,如果这个端口被占用,那就需要修改为其他空闲的端口。配置好后重启 Fiddler。
手机安装证书
要抓取到手机 APP 信息,需要把 Fiddler 证书安装到手机里。手机安装 Fiddler 证书方法有以下几种:
1、下载到电脑,通过数据线传到手机内存,点击进行安装。
2、下载到电脑,通过爱莫助手无线传到手机内存中,点击进行安装。
3、使用手机的浏览器打开 http://PC的ip:Fidder使用的端口号,点 FidderRoot certificate 下载后找到刚下载的证书,安装证书。
手机设置
我们先保证手机和电脑都处于同一个网络,先查看下本机的 ip 地址,可以 cmd 内通过命令 ipconfig 获取 ip 地址,也可以在 Fiddler 右上角,鼠标移动到 online 上查看 ip 地址。
再设置手机,这里我以 Android 手机为例(苹果手机的更简单),打开和电脑连接的同一网络,点击修改网络,勾选显示高级选项,将代理选项设置为手动,输入刚才查到的电脑 ip 和 Fiddler 刚设置的端口号,保存网络。
手机抓包
上面的都设置好后,我在手机上打开了 pk 哥上篇公众号文章,这是 Fiddler 就会抓取到相应的数据,右边上部分显示的是 Request 信息,包括爬虫时用到的请求链接信息,右边下部分显示的是 Response 返回信息,返回显示我切到 WebView 栏直接显示的就是手机上打开的页面。
对于前端开发和测试,还有一个功能会经常用到,这里提一下,就是断点功能,上面讲 Fiddler 的原理中讲到,所以的请求和返回都会经过 Fiddler,所以测试中我们可以修改请求和返回来测试我们需要的场景。在菜单栏 Rules Automatic-->Breakpoint 中设置请求断点或者返回断点。
设置断点后再操作网页时,Fiddler 就会在这个请求或者返回前停留,等待你修改完成后点击提交后才完成整个操作。下图是我设置了请求断点,出现红色标志的图标表示断点成功,等待修改提交的状态。
这个功能对于开发或者测试在调试某些场景的时候很有用,有兴趣的同学可以学习下。
PS:抓包调试完后手机上记得把代理选项由「手动」改成「无」,不然 Fiddler 工具关闭后,手机上会出现网络异常之类的报错。
今天分享的是准备工作,下次就给大家分享一个实战爬虫 APP 的案例。
今天的内容就分享到这里,希望对你有帮助,祝进步!