赵走x博客
网站访问量:152032
首页
书籍
软件
工具
古诗词
搜索
登录
Python3网络爬虫实战:46、付费讯代理、阿布云代理的使用
Python3网络爬虫实战:45、代理池的维护
Python3网络爬虫实战:44、代理的设置
Python3网络爬虫实战:43、微博宫格验证码的识别
Python3网络爬虫实战:42、点触点选验证码的识别
Python3网络爬虫实战:41、极验滑动验证码的识别
Python3网络爬虫实战:40、图形验证码的识别
Python3网络爬虫实战:38、动态渲染页面抓取:Splash的使用
Python3网络爬虫实战:37、动态渲染页面抓取:Selenium
Python3网络爬虫实战:36、分析Ajax爬取今日头条街拍美图
Python3网络爬虫实战:35、 Ajax数据爬取
Python3网络爬虫实战:34、数据存储:非关系型数据库存储:Redis
Python3网络爬虫实战:33、数据存储:非关系型数据库存储:MongoDB
Python3网络爬虫实战:32、数据存储:关系型数据库存储:MySQL
Python3网络爬虫实战:31、数据存储:文件存储
Python3网络爬虫实战:30、解析库的使用:PyQuery
Python3网络爬虫实战:29、解析库的使用:BeautifulSoup
Python3网络爬虫实战:28、解析库的使用:XPath
Python3网络爬虫实战:27、Requests与正则表达式抓取猫眼电影排行
Python3网络爬虫实战:26、正则表达式
Python3网络爬虫实战:25、requests:高级用法
Python3网络爬虫实战:24、requests:基本使用
Python3网络爬虫实战:23、使用Urllib:分析Robots协议
Python3网络爬虫实战:21、使用Urllib:处理异常
Python3网络爬虫实战:22、使用Urllib:解析链接
Python3网络爬虫实战:20、使用Urllib发送请求
Python3网络爬虫实战:19、代理基本原理
Python3网络爬虫实战:18、Session和Cookies
Python3网络爬虫实战:17、爬虫基本原理
Python3网络爬虫实战:16、Web网页基础
Python3网络爬虫实战:15、爬虫基础:HTTP基本原理
Python3网络爬虫实战:14、部署相关库的安装:Scrapyrt、Gerapy
Python3网络爬虫实战:13、部署相关库的安装:ScrapydClient、ScrapydAPI
Python3网络爬虫实战:12、部署相关库的安装:Docker、Scrapyd
Python3网络爬虫实战:11、爬虫框架的安装:ScrapySplash、ScrapyRedis
Python3网络爬虫实战:10、爬虫框架的安装:PySpider、Scrapy
Python3网络爬虫实战:9、APP爬取相关库的安装:Appium的安装
Python3网络爬虫实战:8、APP爬取相关库的安装:MitmProxy的安装
Python3网络爬虫实战:7、APP爬取相关库的安装:Charles的安装
Python3网络爬虫实战:6、Web库的安装:Flask、Tornado
Python3网络爬虫实战:5、存储库的安装:PyMySQL、PyMongo、RedisPy、RedisDump
Python3网络爬虫实战:4、数据库的安装:MySQL、MongoDB、Redis
Python3网络爬虫实战:3、解析库的安装:LXML、BeautifulSoup、PyQuery、Tesserocr
Python3网络爬虫实战:2、安装:GeckoDriver、PhantomJS、Aiohttp
Python3网络爬虫实战:1、请求库安装:Requests、Selenium、ChromeDriver
Python3网络爬虫实战:7、APP爬取相关库的安装:Charles的安装
资源编号:75751
Python3网络爬虫实战
爬虫
热度:152
除了 Web 网页,爬虫也可以对 APP 的数据进行抓取,APP 中的页面要加载出来,首先需要获取数据,那么这些数据一般是通过请求服务器的接口来获取的,由于 APP 端没有像浏览器一样的开发者工具直接比较直观地看到后台的请求,所以对 APP 来说,它的数据抓取主要用到一些抓包技术。
除了 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. 相关链接 * 官方网站:https://www.charlesproxy.com * 下载链接:https://www.charlesproxy.com/download #### 2.下载Charles Charles 的官网是:https://www.charlesproxy.com,我们可以在官网下载最新稳定版本,链接为:https://www.charlesproxy.com/download,它支持 Windows、Linux、Mac 三大平台。 #### 3. 证书配置 现在很多页面都在向 HTTPS 方向发展,HTTPS 通信协议应用越来越广泛,如果一个 APP 通信应用了 HTTPS 协议,那它通信的数据都会是被加密的,常规的截包方法是无法识别请求内部的数据的。 安装完成之后如果我们想要做 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 所示:  图 1-53 提示窗口 它提示我们在手机上设置好 Charles 的代理,我们刚才已经设置好了,然后在手机的浏览器中打开 chls.pro/ssl 下载证书,我们在手机上打开这个链接。 打开之后便会弹出证书的安装页面,如图 1-54 所示:  图 1-54 证书安装页面 我们点击安装,然后输入密码即可完成安装,如图 1-55 所示:  图 1-55 安装成功页面 如果你的 iOS 版本是 10.3 以下的话,此处信任 CA 证书的流程就已经完成了。 如果你的 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,这时会出现一个提示框,如图 1-59 所示:  图 1-59 证书安装页面 我们为证书添加一个名称,然后点击确定即可完成证书的安装。 #### 4. 结语 本文介绍了 Charles 的安装及证书配置过程,后文我们会介绍 Charles 的基本使用方法。 #### 提示 如何在抓包过程中,出现下面提示: ``` SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations ``` 出现这种情况,charles解析不出path,我们就没法建立映射。 具体的解决方案为在proxy中的SSL Proxying setting中钩上Enable SSL Proxying,并且将要解析的host加上。如下图: 