当前位置: 首页 > 文档资料 > Python 全栈 >

18. App的信息爬取

优质
小牛编辑
134浏览
2023-12-01
  • 之前我们讲解的都是Web网页信息爬取,随着移动互联的发展,越来越多的企业并没有提供Web网页端的服务,而是直接开发App。
  • App的爬取相比Web端爬取更加容易,反爬中能力没有那么强,而且响应数据大多都是JSON形式,解析更加简单。
  • 在APP端若想查看和分析内容那就需要借助抓包软件,常用的有:Filddler、Charles、mitmproxy、Appium等。

  • mitmproxy是一个支持HTTP/HTTPS协议的抓包程序,类似Fiddler、Charles的功能,只不过世它通过控制台的形式操作。

  • Appium是移动端的自动化测试工具,类似于前面所说的Selenium、利用它可以驱动Android、IOS等设备完成自动化测试。

18.1 Charles的介绍

Charles主要功能:

* 支持SSL代理。可以截取分析SSL的请求。
* 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
* 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
* 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
* 支持重发网络请求,方便后端调试。
* 支持修改网络请求参数。
* 支持网络请求的截获并动态修改。
* 检查HTML,CSS和RSS内容是否符合W3C标准。

18.2 Charles的配置

① 网络共享配置:

  • 实现手机通过电脑上网:就是电脑通过网线上网,然后共享Wifi,手机在链接此wifi。
    • 查看本机电脑的网络链接:
    • 共享wifi设置:
    • 手机链接此wifi,实现手机和电脑连接到同一个局域下

② 代理设置:

  • 实现手机和电脑在同一局域网下的机上,完成Charles的代理设置:

    • 首先查看电脑的打开Charles代理是否开启,具体操作是:Proxy -> Proxy Settings ,打开代理设置界面,设置代理端口为:8888.

    • 打开手机的网络配置,并设置使用代理配置:

③ 证书配置:

  • 安装完成后,我们还需要配置相关SSL证书 来抓取HTTPS协议的信息包。

  • Windows系统:

    • 首先打开Charles,点击Help->SSL Proxying->Install Charles Root Certificate,即可进入证书安装界面。
    • 点击 “安装证书” 按钮,就会打开证书导入向导。
    • 点击 “下一步” 按钮,此时需要选择证书存储区域“将所有证书放入下列存储”->点击"浏览"->选择“受信任的证书颁发机构”->"确定"->"下一步"->完成。
  • Mac系统:

    • 首先打开Charles,点击Help->SSL Proxying->Install Charles Root Certificate,即可进入证书安装界面。
    • 接下来,找到Charles的证书并双击,将 “信任” 设置为 “始终信任”即可 。
  • IOS手机

    • 在网络配置和代理开启的情况下,若是你的手机是IOS系统,可以按照下面的操作进行证书配置。
    • 在手机浏览器上打开chls.pro/ssl后,便会打开证书安装页面,点击安装即可。

    • 在IOS手机上,点击“设置”->"通用"->"关于本机"->"证书信任设置",设置开启即可。

⑤ Charles 配置 HTTPS 代理的乱码问题

  • 在 Charles 设置 SSL 代理:

    • Proxy –> SSL Proxying Setting –> Enable SSL Proxying

18.3 Charles的运行原理和具体使用

① 运行原理:

  • 首先Charles运行在自己的PC上,Charles运行的时候会在PC的8888端口开启一个代理服务,这就是一个HTTP/HTTPS的代理。

  • 确保手机和PC在同一个局域网内,我们可以使用手机模拟器通过虚拟网络连接,也可使用手机真机和PC通过无线网连接。

  • 设置手机代理为Charles的代理地址,这样手机访问互联网的数据包就会流经Charles,Charles再转发这些数据包到真实的服务器,同理相反也是如此。

② 具体使用

  • 手机运行App访问要爬取的平台信息,使用Charles抓包分析。
  • 知道了请求和响应的具体信息,通过分析得到请求的URL地址和参数的规律,直接使用程序模拟即可批量爬取。