爬虫不仅仅只对 Web 页面的信息进行爬取,还可以爬取应用中存在的大量数据,例如移动端的 App。由于 App 中的数据都是通过异步的方式从后台服务器中获取的,类似于 Web 中的 Ajax 请求,所以在爬取数据前同样需要分析 App 用于获取数据的 URL。
由于 App 运行在手机或平板电脑中,在获取请求地址时无法像 Web 一样在 PC 端通过浏览器进行获取。所以就需要使用专业的抓包工具,实现 App 请求地址的抓取工作。本篇博文将介绍如何使用 Charles 抓包工具获取 App 中的请求地址。
一、Charles 工具的下载与安装
可以实现 App 抓包的工具有很多,例如, Charles、Fiddler、mitmproxy 等。不过从性能的角度来讲,Charles 的功能更加强大一些。Charles 抓包工具是收费软件,但可以免费试用 30 天。点击 此处 打开 Charles工具的官方下载页面,Charles 是一个跨平台网络抓包工具,支持 Windows、Mac 和 Linux 平台,读者可以根据自己的操作系统下载对应的版本即可。这里以 Windows 系统为例进行演示,如下图所示。
下载完成后,本地磁盘中将出现名称为 charles-proxy-4.6.1-win64.msi
的安装文件,双击该文件将显示如图所示的欢迎对话框,在该对话框中直接单击 Next 按钮。
在 End-User License Agreement(最终用户许可证协议) 中,勾选 I accept the terms in the License Agreement
同意协议,然后单击 Next 按钮。如下图所示。
在弹出的 Destination Folder 对话框中,选择自己需要安装的路径,然后单击 Next 按钮,如图所示。
在 Ready to install Charles (准备安装) 对话框中,直接单击 Install 按钮,如下图所示。
安装完成以后将显示如图所示的对话框,在该对话框中直接单击 Finish 按钮即可。
二、SSL 证书的安装
2.1 安装 PC 端证书
Charles 工具安装完成以后,在菜单中部或底部的搜索位置找到 Charles 启动图标,启动 Charles 工具。Charles 启动后将默认获取当前 PC 端所有网络请求,例如,自动获取 PC 端浏览器中访问的百度页面,不过在查看请求内容时,将显示如图所示的乱码信息。
说明:在默认的情况下 Charles 是可以获取 PC 端的网络请求的。
目前的网页多数都是使用 HTTPS 与服务端进行数据交互,而通过 HTTPS 传输的数据都是加密的,此时通过 Charles 所获取到的信息也都是乱码,需要安装 PC 端 SSL 证书。安装 PC 端 SSL 证书的具体步骤如下:
(1) 打开 Charles 工具,依次选择 Help ⇒ SSL Proxying ⇒ Install Charles Root Certificate 菜单项打开安装 SSL 证书对话框,如图所示。
(2) 在已经打开的安装 SSL 证书对话框中,单击 安装证书
按钮,然后在证书导入向导对话框中直接单击 下一步
按钮,如图所示。
(3) 打开证书向导的 证书存储
对话框,在该对话框中首先选择 将所有的证书都放入下列存储
选项,然后单击 浏览
按钮,选择证书的存储位置为 受信任的根证书颁发机构
,再单击 确定
按钮,最后单击 下一步
按钮即可。如图所示。
(4) 在证书导入向导的 正在完成证书导入向导
的对话框中,直接单击 完成
按钮,如图所示。
(5) 在弹出的安全警告框中单击 是
按钮,如图所示,即可完成 SSL 证书的安装。
(6) 在 导入成功
的提示对话框中单击 确定
按钮,然后在安装证书的对话框中单击 确定
按钮,如图所示。
2.2 设置代理
PC 端的 SSL 证书安装完成以后,在获取请求详情内容时依然显示乱码。此时还需要设置 SSL 代理,设置 SSL 代理的具体步骤如下:
在 Charles 工具中,依次选择 Proxy ⇒ SSL Proxying Settings菜单项,在 SSL Proxying
选项卡当中勾选 Enable SSL Proxying
复选框,然后单击左侧 Include
下面对应的 Add 按钮,在 Edit Location 窗口中设置指定代理,如果没有代理的情况下可以将其设置为 “*”(表示所有的 SSL) 即可,如下图所示:
SSL 代理设置完成以后,重新启动 Charles,再次打开浏览器中的百度网页,单击左侧目录中的 /
将显示如图所示的详细内容。
2.3 配置网络
当需要通过 Charles 抓取手机中的请求地址时,需要保证 PC 端与手机端在同一网络环境下,然后为手机端进行网络配置。配置网络的具体步骤如下:
(1)确定 PC(电脑端) 与手机端在同一网络下,然后在 Charles 工具的菜单中依次选择 Help ⇒ SSL Proxying ⇒ Install Charles Root Certificate on a Mobile Device or Remote Browser 菜单项,如图所示。
(2) 打开移动设备安装证书的信息提示框,在该对话框中需要记录 IP 地址与端口号,如图所示。
(3) 将提示框中的 IP 地址与端口号记住后,将手机 (这里以 Android 手机为例) WIFI 连接与 PC(电脑端) 同一网络的 WIFI,然后在手机 WIFI 列表中长按已经连接的 WIFI,在弹出的菜单中选择 修改网络
如图所示。
(4) 在修改网络的界面中,首先勾选 显示高级选项
,然后在 服务器主机名
与 服务器端口
所对应的位置填写 Charles 的移动设备安装证书的信息提示框中所给出的 IP 与端口号,单击 保存
按钮。如图所示:
(5) 在手机端服务器主机与端口号设置完成后,PC (电脑端) Charles 将自动弹出是否信任此设备的确认对话框,在该对话框中直接单击 Allow 按钮即可,如图所示。
如果 PC(电脑端) 的 Charles 没有提示上图所示的提示框,可以在 PC(电脑端) 命令行窗口内通过 ipconfig 命令获取当前电脑端的无线局域适配器所对应的 IPv4 地址,并将该地址设置在步骤(4) 中手机连接 WIFI 的服务器主机名当中。
2.4 安装手机端证书
PC(电脑端) 与手机端的网络配置完成以后,需要将 Charles 证书保存在PC(电脑端),然后安装在手机端,这样 Charles 才可以正常的抓取手机 App 中的网络请求。安装手机端证书的具体步骤如下:
(1) 在 Charles 工具中依次选择 Help ⇒ SSL Proxying ⇒ Save Charles Certificate…菜单项,如图所示。
(2) 将证书文件保存在 PC(电脑端) 指定路径下,如图所示。
(3) 将 Charles_SSL 证书文件导入手机中,然后在手机中依次选择 设置 ⇒ 安全和隐私 ⇒ 更多安全设置 ⇒ 从 SD 卡安装证书(凭据),选择 Charles_SSL 证书文件,输入手机密码后设置证书名称,单击 确定
按钮。如图所示。
说明:不同品牌的手机安装 Charles_SSL 证书文件的方式会有所不同,所以需要读者根据使用的手机品牌寻找对应的安装方式。
(4) 完成以上的配置工作以后,打开 Android 手机中的某个 App 中的某个新闻网页,如图所示。
(5) 在 Charles 工具中左侧的请求栏内,同时观察不断出现换色闪烁的最新请求,即可查询到 Android 手机中新闻所对应网页的请求地址,如图所示。
在不确定 Charles 工具中所获取的请求地址是否正确时,可以将获取的地址在 PC(电脑端) 的浏览器中进行页面的验证工作,验证结果如图所示。
三、总结
感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请点赞
、评论
、收藏
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!