《目录》
- 原理
- 下载工具
- Charles 的配置
- 截取设备上的 络封包
- 截取 Https 通讯信息
原理
手机app一般以 json 传输,和 页一样。
只是 页的 url 地址在搜索栏中获取即可,但 app 完全看不到其 url 在哪里!
因此,爬取 app 最难的就是获取ta的url。
我们可以找一个工具帮我们拦截 手机app 与 服务器 之间的通信的数据,其中就包含了 url 地址。
我推荐 Charles,您可以把 ta 想成一个代理 ip。
因为手机不会显示 url ,因此我们并没有获取 url 的方式了。
所以,我们可以通过 Charles 获取需要的 url。
下载工具
请先下载好一个工具:Charles,破解后不要在线升级。
Mac:
4.2.8原版,https://pan.baidu.com/s/1XucDjCXJaMFZeZkddfdkzQ,5uuf;破解:[help] -> [Register Charles] 中随意输入账 和激活码完成注册,OS X 10.7或更高。
4.2.7中文版,https://pan.baidu.com/s/1yYqnoZp1pEg8UMxC92cbEg,s6xd;破解:见图,
java程序:https://sdifen.pipipan.com/fs/1855249-315430471
Windows:
4.2.5原版:https://pan.baidu.com/s/1WdG_QcU9YCqWGO38DU0R2Q,qfnk;破解见图,
启动 Charles 后,第一次 Charles 会请求给它设置系统代理理的权限,点击 [Grant Privileges] 允许按钮,输入登录密码授予 Charles 该权限。
Charles 的配置
中文版界面如图,
结构(Structure)视图:将 络请求按访问的域名分类。
序列(Sequence)视图:将 络请求按访问的时间排序。
过滤(Filter)功能:可输入关键字,快速筛选出 URL 中带指定关键字的 络请求。
截取设备上的 络封包
首先,手机和电脑连同一个 WIFI,或者手机开热点电脑连接。
电脑端 Charles 配置:在 Charles 的菜单栏上选择 “代理(Proxy)”->”代理设置(Proxy Settings)”,填span style=”color:#7c79e5;”>代理端口 8888,并且勾上 “启用透明 HTTP 代理(Enable transparent HTTP proxying)”。
手机移动端配置:点击 Charles 的 “帮助(Help)” -> ”本机IP地址(Local IP Address)”,可获取 Charles 运在电脑的 IP 地址;
iPhone:在 iPhone 的 “ 设置 “->” 局域 “ 中,可看到当前连接的 wifi 名,通过点击右边的详情键, 在其最底部有HTTP 代理—>配置代理,我们将其切换成手动,而后填上 Charles 运行所在 的电脑的 IP,以及端8888。
Android:不同手机可能会有一点点不同,划屏下来点击 “wifi 的图标”,看到许多 WIFI,以及当前连接的 wifi 名。
摁住当前连接的 wifi(请确保手机与电脑连接的wifi相同) 2 秒的样子,会出现 “修改 络”,点进去。
将 “显示高级选项” 打勾,代理 调成 “手动”,服务器主机名填 “本机IP地址“,获取方式看上面,服务器端口填 8888。
设置后,打开 手机 上的任意需要 络通讯的程序,就可以看到 Charles 弹出 手机 请求连接 的确认菜单,点击 “Allow” 即可完成设置。
p.s.这时候可以点一些喜欢的app,看一下 Charles 会不会有反应。如果app是联 的会有反应,但里面但内容可能是乱码。
截取 Https 通讯信息
Https 协议属于加密协议,要想截取分析 Https 协议相关的内容,需要安装 Charles 的 CA 证书,否则会乱码。
2. PC 端证书安装: 帮助(Help) –> SSL代理(SSL Proxying) –> 安装Charles Root证书(Install Charles Root Certificate) ,选择 Charles 的证书,并信任此证书,接着输入密码即可。
3. 移动端证书安装: 帮助(Help) –> SSL代理(SSL Proxying) –> 在移动设备上安装Charles Root证书(Install Charles Root Certificate on a Mobile Device) , 安装弹出的对话框要求,配置好端8888 的代理之后,在浏览访问 http://chls.pro/ssl 就可以下载证书并安装了,这个证书是 1.84K。
浏览iPhone 需要 Safari ,安卓 (应该) 需要 手机自带浏览器,不行的话多试一下,还是不行改成默认浏览器和常用浏览器。比如,我的是华为麦芒6,用华为浏览器即可,下载内容会自动弹出来。
4. 安卓安装证书 帮助(Help) –> SSL 代理(SSL Proxying) –>保存 Charkes 根证书(Save Charles Root Certificate)… ,选择 要保存的文件,点击 Save, 将保存的传到(可以使用QQ微信蓝牙…),点击手机的 设置 -> WLAN -> 高级设置 -> 安装证书 ,找到保存目录(安卓手机用MT文件管理器会很容易找到),安装完成,这个证书是 1.86K。
对于 iOS 10.3 以上的需要设置证书信任:点击 通用 -> 关于本机 -> 证书信任设置 -> 选择 Charles 的证书打开,安卓不需要。
配置好了,重启电脑即可。
手机点击app,看源代码分析,可得到访问的url。
如在手机打开keep,可以看到charles跳出很多的请求,就像我们在浏览器分析是一样的,我们拿到请求的url等接息,就可以在代码中使用了。
爬虫过程如同《爬虫探索时》,因为俩者都是 json 传输,不过需要手动添加许多参数以及软件的url需要自己对比app内容找出来。
爬app keep ,一个健身软件。
爬app 喜马拉雅,一个听书软件。
如果还有问题,参见《Charles的点点滴滴》。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!