网络爬虫 - App爬虫及代理的使用(十一)
App爬虫及代理的使用
- 一、App抓包
- 1. App爬虫原理
- 2. reqable的安装与配置
- 1. reqable安装教程
- 2. reqable的配置
- 3. 模拟器的安装与配置
- 1. 夜神模拟器的安装
- 2. 夜神模拟器的配置
- 4. 内联调试及注意事项
- 1. 软件启动顺序
- 2. 开启抓包功能
- 3. reqable面板功能
- 4. 夜神模拟器设置项
- 5. 注意事项
- 5. Requable代理浏览器网络
- 1. 配置浏览器代理
- 2. Requable配置浏览器代理
- 二、代理的使用
- 1. 付费代理
- 1. 找付费代理服务站点
- 2. 生成获取代理的api接口
- 3. python请求接口
- 4. 代理使用注意事项
- 2. 免费代理
- 1. 代理池设计
- 2. Redis数据库
- 1. Redis是什么?
- 2. Redis应用场景
- 3. Redis安装
- 4. Redis数据库有序集合操作
- 3. 代理池实现
- 1. 采集模块
- 2. 存储模块
- 3. 检测模块
- 4. web接口
- 5. 调度模块
- 6. 配置文档
- 总结:
一、App抓包
1. App爬虫原理
Application(以下称App)主要指安装在智能手机上的应用程序。APP 运行在相应的操作系统上,如苹果公司的 iOS 系统或谷歌公司的 Android 系统。
App 和网站都是 Web 应用,它们与服务器通信时使用的协议是相同的。
与网站不同的是,App 的网络传输和数据收发相对隐蔽,用户既无法直接查看客户端发出的请求信息和服务器端返回的响应内容,也无法直接查看 App 的代码。
为了能像使用浏览器开发者工具一样对APP数据进行抓包,就必须先要一个能够对app数据进行抓取的开发者工具。
2. reqable的安装与配置
reqable是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
看到这么多的应用,是不是就迫不及待的想要开始你的抓包之旅呢,不要急,俗话说的好:工欲善其事,必先利其器,我们先来安装reqable吧。
官网下载地址:https://reqable.com/
1. reqable安装教程
● 安装教程如下:
(1)双击安装包,如下所示,选择想要存放的目录,如果不需要修改,使用默认的即可,然后点击Next:
(2)会出现以下界面,继续点击Next
(3)点击Install,等待几秒即可安装
(4)安装后双击运行,如下所示到这里我们就初步安装成功了
2. reqable的配置
如果想要对手机上的app进行抓包怎么办呢,那么你还需要进行以下操作:
- 首先你的Fiddler所在的电脑和手机必须处在同一个局域网内(即连着同一个路由器)。
- 其次需要修改reqable监听的ip和端口号,如下所示:
这个ip和端口号就是手机app设置的代理,后续在手机端我们会设置
最后就是需要配置证书,没有证书就会导致手机没网络。配置证书在本教程中需要配置到模拟器,后续在配置模拟器的再详细介绍。证书配置的教程在reqable中也有教程,具体参照:安装教程
3. 模拟器的安装与配置
为了能像使用浏览器开发者工具一样对APP数据进行抓包,就必须要一个能运行APP的环境。目前主流的是使用模拟器进行抓包,原因有以下几点:
- Android8.0 以上安卓系统有些数据抓取不到
- 模拟器环境配置相对简单,容易root之后获取更高的权限
当然也可以选择使用真机进行调试。但是实际采用真机会有很多不必要的麻烦,必须重做系统、获取root权限多多少少会影响到正常的使用,如果专门购买一个真机专门用于app调试,也免不了要多踩很多坑(国内的厂商都有自己的优化,并且手机型号、系统版本等等都会影响到调试)。
1. 夜神模拟器的安装
● 官网下载地址:https://www.yeshen.com/
● 双击安装包,选择安装路径,点击安装即可:
2. 夜神模拟器的配置
安装高版本安卓系统
● 目前许多app应用对低版本的安卓系统会有不兼容的情况。所以建议在夜深模拟器中安装安卓9的系统版本
『使用模拟器助手,即可选择系统版本安装』
配置代理
● 在系统页面中找到 工具 中找到 设置,在设置页面下拉找到网络和互联网点击
● 点击 WLAN
● 点击 编辑 按钮
● 点击 设置 按钮
● 点击 高级选项 下拉按钮
● 代理模式选择 手动,填写代理服务器主机名和代理服务器端口,点击保存
注意:reqable中显示监听的ip和端口是什么,那么在这里就填写什么
配置证书
Android 7.0之后默认不相信用户自己安装的证书,这样一来抓包工具就无法抓取https加密的报文,这种情况下解决办法只有两个,一个是不用android7.0以上的设备,还有一个方法就是安装系统的根证书。接下来我们来看看如何安装系统的根证书。
● 配置 ADB
ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。
ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真实的 Android设备。
(1)Google很好心,直接放出ADB的zip供人下载。路径如下:
Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本:https://googledownloads.cn/android/repository/platform-tools-latest-darwin.zip
Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip
(2)配置 ADB系统环境变量
ADB 压缩包解压到指定目录后,把解压路径放到系统变量里去(Path)
(3)电脑打开cmd窗口,输入 adb version ,显示 adb 版本,说明安装成功
● 使用 ADB 操作证书移动以及权限的修改
(1)在 Reqable 中下载证书,每台电脑下载的文件名字会不一样
(2)打开CMD操作证书的移动及权限的修改
要启动夜神模拟器操作、关掉退出杀毒软件等
① 用 ADB 指令先连接模拟器
adb devices
注意!!!注意!!!注意!!!
连接为空,可以使用端口连接夜神模拟器
adb connect 127.0.0.1:62001
(3) 将下载好的证书移动到模拟器安卓系统根路径 / 下
① 首先要进入模拟器安卓系统修改文件目录权限
adb shell
② 修改根目录和system目录权限可读可写
mount -o rw,remount /
mount -o rw,remount /system
③ 输入 exit 退出模拟器安卓系统终端
exit
④ 将证书从windows系统移动到模拟器安卓系统下
格式:adb push 证书路径 存放在模拟器路径
adb push 证书路径 /system/etc/security/cacerts/
⑤ 再次进入模拟器安卓终端,修改证书权限
chmod 644 /system/etc/security/cacerts/证书文件名
至此为止, 证书安装成功, 需要重启模拟器生效
● 查看证书是否安装到系统证书
手机进入:设置–>安全性和位置信息–>加密与凭据–>信任的凭据–>系统
4. 内联调试及注意事项
1. 软件启动顺序
因为在模拟器中配置了代理服务器主机名和代理服务器端口,对应的就是reqable监听的ip和端口,所有的模拟器网关都会走这里。因此当我们单独启动模拟器的时候是没有网络的。
所以每次软件的启动的顺序如下,这样启动模拟器才会有网络:
- 先打开reqable
- 再打开夜神模拟器
2. 开启抓包功能
如果reqable需要抓取模拟器的请求,需要在软件界面启动抓包功能,如下所示:
但是如果直接这样启动会抓取到很多系统代理,我们不需要分析这类系统代理请求,可以关闭此功能,如下所示:
3. reqable面板功能
完整的面板功能介绍请参考官方文档:http://reqable.com/docs/overview
列表部件功能
列表数据
选中一个列表项,双击可以打开详情:
快捷操作栏
4. 夜神模拟器设置项
5. 注意事项
系统代理
reqable配置了系统证书后,会自动代理系统代理。导致后续使用代码发送http请求的时候报代理错误。因此在使用代码请求的时候需要在系统设置里面关闭系统代理。
安装App应用
系统应用无法安装App应用,如需安装可以在豌豆荚下载App应用安装包
豌豆荚官网地址:https://www.wandoujia.com/
选择普通下载
下载的文件尾缀是apk,此格式也是安卓应用安装包格式
将下载的apk安装包拖入到模拟器即可安装应用
5. Requable代理浏览器网络
某些网站会检测浏览器开发者工具状态 ,一旦启用开发者工具进行抓包,会进入无线Debug状态。在此状态下我们无法抓取数据包,那么我们可以不使用浏览器开发则会工具抓包。可以配置代理后使用Requable进行抓包。
目标站点:https://www.qidian.com/rank/yuepiao/
1. 配置浏览器代理
浏览器需要走自己的代理,可以借助SwitchyOmega代理插件,将此插件安装在浏览器后,按照如下方式配置:
配置好代理插件后,可以在插件栏固定,方便切换代理:
使用插件,选择配置好的代理:
2. Requable配置浏览器代理
首先需要安装windows系统证书
配置抓包的服务器ip和端口,启动即可抓包
效果显示:
温馨提示:浏览器不使用代理的时候需要切换到直接连接模式,不然会没有网络。
二、代理的使用
1. 付费代理
1. 找付费代理服务站点
搜索 代理ip ,能够发现有很多付费代理服务站点
目前付费代理站点一般注册后,会有免费的测试代理用量,学习阶段用免费的做测试就够用了。不过现在代理网站普遍都需要实名认证,也会有站点的工作人员联系你添加联系方式,额外也会送你一些ip测试。
-
教学所用的代理服务网站是:巨量IP,用其他网站的代理服务也可以,使用方法大同小异
-
品易HTTP网址:https://www.juliangip.com/