Python3网络爬虫实战-6、APP爬

发布时间:2019-09-24 08:36:13编辑:auto阅读(1601)

    除了 Web 网页,爬虫也可以对 APP 的数据进行抓取,APP 中的页面要加载出来,首先需要获取数据,那么这些数据一般是通过请求服务器的接口来获取的,由于 APP 端没有像浏览器一样的开发者工具直接比较直观地看到后台的请求,所以对 APP 来说,它的数据抓取主要用到一些抓包技术。

    本书介绍的抓包工具有 Charles、MitmProxy、MitmDump,APP 一些简单的接口我们通过 Charles 或 MitmProxy 分析找出规律就可以直接用程序模拟来抓取了,但是如果遇到更复杂的接口我们就需要利用 MitmDump 对接Python来对抓取到的请求和响应进行实时处理和保存,另外既然要做规模采集就需要自动化 APP 的操作而不是人工去采集,所以这里还需要一个工具叫做 Appium,它可以像 Selenium 一样对 APP 进行自动化控制,如自动化模拟APP的点击、下拉等操作。

    本节我们来了解一下 Charles、MitmProxy、MitmDump、Appium 的安装方法。

    1.6.1 Charles的安装

    Charles 是一个网络抓包工具,在做 APP 抓包的时候会用到,相比 Fiddler 来说,Charles 的功能更为强大,而且跨平台支持更好,所以在这里我们选用 Charles 来作为主要的移动端抓包工具,用于分析移动 APP 的数据包,辅助完成 APP 数据抓取工作。

    1. 相关链接

    2.下载Charles

    Charles 的官网是:https://www.charlesproxy.com,我们可以在官网下载最新稳定版本,链接为:https://www.charlesproxy.com/...,它支持 Windows、Linux、Mac 三大平台。

    3. 证书配置

    现在很多页面都在向 HTTPS 方向发展,HTTPS 通信协议应用越来越广泛,如果一个 APP 通信应用了 HTTPS 协议,那它通信的数据都会是被加密的,常规的截包方法是无法识别请求内部的数据的。Python学习q-u-n 七八四,七五八,二一四 工具,各类实战操作分享
    安装完成之后如果我们想要做 HTTPS 抓包的话还需要配置一下相关 SSL 证书,如果不配置的话无法抓取 HTTPS 请求。

    点击 Help->SSL Proxying->Install Charles Root Certificate,即可进入证书的安装页面。
    接下来找到 Charles 的证书双击,将信任设置为始终信任即可,如图 1-48 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-48 证书配置
    这样就成功安装了证书。

    iOS

    如果你的手机是 iOS 系统,可以按照下面的操作进行证书配置。
    首先查看一下电脑的 Charles 代理是是否开启的,点击 Proxy->Proxy Settings 即可打开当前代理设置页面,确保当前的 HTTP 代理是开启的,如图 1-49 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-49 代理设置
    例如这里的代理端口为 8888,也可以自行修改。
    接下来将手机和电脑连在同一个局域网下,例如当前电脑的 IP 为 192.168.1.76,那么首先设置手机的代理为 192.168.1.76:8888,设置如图 1-50 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-50 代理设置
    设置完毕之后电脑上就会出现一个提示窗口,询问是否信任此设备,如图 1-51 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-51 提示窗口
    点击 Allow 即可,这样手机就和 PC 连在了同一个局域网内了,而且设置了 Charles 的代理,这样 Charles 即可抓取到流经 APP 的数据包了。
    接下来我们再安装 Charles 的 HTTPS 证书。
    在电脑上打开 Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser,如图 1-52 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-52 证书安装页面入口
    即可看到如下提示,如图 1-53 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    它提示我们在手机上设置好 Charles 的代理,我们刚才已经设置好了,然后在手机的浏览器中打开 chls.pro/ssl 下载证书,我们在手机上打开这个链接。
    打开之后便会弹出证书的安装页面,如图 1-54 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-54 证书安装页面
    我们点击安装,然后输入密码即可完成安装,如图 1-55 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-55 安装成功页面
    如果你的 iOS 版本是 10.3 以下的话,此处信任 CA 证书的流程就已经完成了。Python学习q-u-n七八四,七五八,二一四教程视频,工具,各类实战操作分享
    如果你的 iOS 版本是 10.3 及以上,还需要在设置->通用->关于本机->证书信任设置将证书添加完全信任,如图 1-56 所示:
    在这里将 Charles 的证书的完全信任开关打开即可,如图 1-56 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-56 证书信任设置
    这样 iOS 上配置信任 CA 证书的流程就结束了。

    Android

    如果你的手机是 Android 系统,可以按照下面的操作进行证书配置。
    Android 同样需要设置代理为 Charles 的代理,如图 1-57 所示:
    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-57 代理设置
    设置完毕之后电脑上就会出现一个提示窗口,询问是否信任此设备,如图 1-58 所示:

    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-58 提示窗口
    点击 Allow 即可。
    接下来像 iOS 设备一样,在手机浏览器上打开 chls.pro/ssl,这时会出现一个提示框,Python学习q-u-n 七八四,七五八,二一四 工具,各类实战操作分享。如图 1-59 所示:
    evernotecid://D603D29C-DFBA-4C04-85E9-CCA3C33763F6/appyinxiangcom/23852268/ENResource/p75
    Python3网络爬虫实战-6、APP爬取相关库的安装:Charles的安装

    图 1-59 证书安装页面
    我们为证书添加一个名称,然后点击确定即可完成证书的安装。

    4. 结语

    本文介绍了 Charles 的安装及证书配置过程,后文我们会介绍 Charles 的基本使用方法。

关键字