除了 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 所示:

图 1-48 证书配置

这样就成功安装了证书。

iOS

如果你的手机是 iOS 系统,可以按照下面的操作进行证书配置。

首先查看一下电脑的 Charles 代理是是否开启的,点击 Proxy->Proxy Settings 即可打开当前代理设置页面,确保当前的 HTTP 代理是开启的,如图 1-49 所示:

图 1-49 代理设置

例如这里的代理端口为 8888,也可以自行修改。

接下来将手机和电脑连在同一个局域网下,例如当前电脑的 IP 为 192.168.1.76,那么首先设置手机的代理为 192.168.1.76:8888,设置如图 1-50 所示:

图 1-50 代理设置

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

图 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 所示:

图 1-52 证书安装页面入口

即可看到如下提示,如图 1-53 所示:

它提示我们在手机上设置好 Charles 的代理,我们刚才已经设置好了,然后在手机的浏览器中打开 chls.pro/ssl 下载证书,我们在手机上打开这个链接。

打开之后便会弹出证书的安装页面,如图 1-54 所示:

图 1-54 证书安装页面

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

图 1-55 安装成功页面

如果你的 iOS 版本是 10.3 以下的话,此处信任 CA 证书的流程就已经完成了。Python学习q-u-n七八四,七五八,二一四教程视频,工具,各类实战操作分享

如果你的 iOS 版本是 10.3 及以上,还需要在设置->通用->关于本机->证书信任设置将证书添加完全信任,如图 1-56 所示:

在这里将 Charles 的证书的完全信任开关打开即可,如图 1-56 所示:

图 1-56 证书信任设置

这样 iOS 上配置信任 CA 证书的流程就结束了。

Android

如果你的手机是 Android 系统,可以按照下面的操作进行证书配置。

Android 同样需要设置代理为 Charles 的代理,如图 1-57 所示:

图 1-57 代理设置

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

图 1-58 提示窗口

点击 Allow 即可。

接下来像 iOS 设备一样,在手机浏览器上打开 chls.pro/ssl,这时会出现一个提示框,Python学习q-u-n 七八四,七五八,二一四 工具,各类实战操作分享。如图 1-59 所示:

evernotecid://D603D29C-DFBA-4C04-85E9-CCA3C33763F6/appyinxiangcom/23852268/ENResource/p75

图 1-59 证书安装页面

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

4. 结语

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

手机qpython3使用教程爬书_Python3网络爬虫实战-6、APP爬相关推荐

  1. python爬取喜马拉雅_Python爬虫实战案例之爬取喜马拉雅音频数据详解

    这篇文章我们来讲一下在网站建设中,Python爬虫实战案例之爬取喜马拉雅音频数据详解.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 前言 喜马拉雅是专业的音频分享平台,汇集 ...

  2. python网络爬虫实战——利用逆向工程爬取动态网页

    前言 之前写过介绍过网络爬虫的文章,都是一些基础知识,所以在接下来我们完成一个小任务--利用逆向工程爬取一个动态网页,360壁纸网站(https://image.so.com/z?ch=wallpap ...

  3. 【Python爬虫系列教程 11-100】Python网络爬虫实战:最简单的Pandas 中的read_html一行代码爬取网页表格型数据,就可以爬取虎扑体育NBA球员信息

    文章目录 爬取对象 分析 实现代码 爬取对象 虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. ...

  4. python爬取今日头条_Python3网络爬虫实战-36、分析Ajax爬取今日头条街拍美图

    本节我们以今日头条为例来尝试通过分析 Ajax 请求来抓取网页数据的方法,我们这次要抓取的目标是今日头条的街拍美图,抓取完成之后将每组图片分文件夹下载到本地保存下来. 1. 准备工作 在本节开始之前请 ...

  5. 【Python爬虫系列教程 18-100】Python网络爬虫实战:小姐姐手把手教你爬取并下载英雄联盟所有英雄皮肤高清大图

    文章目录 前言 一.分析页面 二.分析第二个页面 三.代码 四.下载结果 前言 上次教你怎么爬取王者荣耀,今天小姐姐教你使用几十行代码下载英雄联盟所有皮肤,你看我下载的九尾妖狐.

  6. python爬图片_网络爬虫经验:反爬和反反爬

    我想很多人入门python是图片爬虫,就是HTTP请求,保存一下图片,用python实现非常快.网上很多爬虫的教程就讲到这里,实际上很单一,看了跟没看没什么区别,都是找一下网页的规律,然后Beauti ...

  7. python 爬网站 实例_python爬虫实战:之爬取京东商城实例教程!(含源代码)

    前言: 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1 ...

  8. 数据爬取 mail_Python网络爬虫实战,数据解析!

    上一篇说完了如何爬取一个网页,以及爬取中可能遇到的几个问题.那么接下来我们就需要对已经爬取下来的网页进行解析,从中提取出我们想要的数据. 根据爬取下来的数据,我们需要写不同的解析方式,最常见的一般都是 ...

  9. Python网络爬虫实战练习:爬取豆瓣图书信息

    一.注意事项 1.文件名尽量使用英文,避免出现编码问题 2.含中文的文件写入,注意标注编码,如: with open(r"C:\Users\10335\Desktop\response.tx ...

最新文章

  1. 谈谈 Java 类加载机制
  2. SQL教学思路《图书管理系统》习题二:插入数据
  3. ACM入门之【最小生成树】
  4. php给留言分配id_php留言板更新代码
  5. c语言火车票管理系统源代码2000行,C语言教务管理系统[2000行代码].doc
  6. 值大于为此列指定的允许精度_电能质量测试精度会受到哪些因素影响?如何解决?...
  7. mysql测试数据图表_mysql测试数据表
  8. c++的thread类(c++线程简单用法)
  9. Swagger使用————接口参数注解的使用缺陷
  10. moodle 中文文件名无法打开和下载问题
  11. linux 怎么查看谁登过这台服务器,如何查看linux服务器是否被入侵
  12. Mysql基础增删改查语句
  13. 服务器系统能装cad吗,服务器主机用CAD画图吗
  14. 计算机专业英文版模板简历,计算机专业英文简历模板
  15. bash+vasp+vaspkit能量应变计算弹性常数
  16. 黄金分割点(java)
  17. 如何发布个人网站(入门全套,小白专用,Linux服务器)
  18. tcprewrite批量修改报文ip地址二
  19. 计算机与3d打印导板,计算机导航系统、3D打印截骨导板与传统器械对全膝关节置换术手术时间和下肢力线恢复的影响...
  20. jquery高级之妙味云课堂笔记

热门文章

  1. 从零开始,用CubeMX让M2006电机转起来,大疆C板控制M2006电机
  2. Linux 中的 chown 命令详解及C/C++代码实现
  3. WindowsServer实训项目——第二章:安装和配置WindowsServer
  4. NS版暗黑破坏神3金手指开发教程(7)
  5. 64位linux安装32 位 gcc库
  6. Windows下的自动定时执行方法 - 定时执行专家
  7. 班班通计算机工作总结,“班班通”使用工作总结
  8. Cell Biolabs——细胞研究丨细胞信号通路和蛋白质生物学
  9. 当我成为独立开发者我在干什么
  10. scrapy 中的 crawl 模块 批量下载图片(详细教程)