采集 APP 上数据的方法

App 爬虫和 Web 爬虫类似,只不过 APP 的接口和数据是需要通过抓包来分析的,而且绝大多数 APP 都会采用 HTTPS 加密协议传送数据

1. 抓包
抓包工具有很多,可自行查找 Mac 下使用轻量级的 Charles 即可

Charles 官方教程:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

Charles 简明教程:https://zhubangbang.com/charlesproxy

设置好代理,安装好 CA 证书,我们就可以抓包了

补充:

考虑到很多同学一直在使用 Fiddler 比较习惯,但是 Fiddler 是在 Windows 下运行的,使用 Mac 的同学怎么办呢?  企业级抓包数据

好说,Mac 中有一个神器 Mono 可以运行 Windows 软件,可以从官网上获得

Mono 官网:https://www.mono-project.com/download/stable/
Mac 使用Fiddler 教程:https://www.jianshu.com/p/e99c6d63a8ad

2. 分析 API 接口
接下来的工作就和 WEB 爬虫几乎一样了,找到请求接口、各类参数、头部信息等即可使用编程语言进行爬取数据了

证书问题
在安装证书的时候我遇到一些问题

1. 证书无法安装
安装证书

Mac
点击 Charles菜单下 Help -> SSL Proxying -> Install Charles Root Certifacate 选择添加。
从应用钥匙串访问搜索Charles,找到添加的证书,双击证书,在信任下选择始终信任。

IOS
从chls.pro/ssh下载证书到本地。
以AirDrop方式共享或者邮件附件发送到IOS手机上,并在手机上选择安装。
在手机设置 -> 通用 -> 关于本机 -> 证书信任设置 中打开信任。

Android
从 chls.pro/ssh 下载证书到本地。
复制到手机sdcard上
在手机设置 -> 安全 -> 从存储设备安装 中命名并选择WLAN按照。

注意:通过Charles抓包的时候需要在菜单Proxy -> SSL Proxying中配置需要开启Enable SSL Proxying并配置需要抓包的域名。

小米设备
我使用过 安卓模拟器、小米手机和小米平板,小米的设备会出现 crt 证书无法安装的情况

这是因为手机内部的安全机制所致,我们在安装证书的时候可以将证书只用于网络即可,下面是两种安装证书的方法

设置——WiFi——高级设置——安装证书

设置——更多设置——系统安全——从存储设备安装证书

2. pip list 和 pip install 出现网络错误
在抓包的时候,使用 Python 的 pip 工具进行安装包的时候,发现出现了类似

[connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed]
1
这样的错误

据网络上说是因为 pip 服务器使用了最新的 https 协议,导致 pip 无法通过自身更新,所以需要手动安装 pip 包

pip 源码包:https://pypi.org/simple/pip/

但是很可惜,安装好以后还是会出这个问题

最后解决方案是:

将 Charles 等这样的抓包工具关掉就好了

因为这些工具使用代理后,网络环境会产生变化,所以导致 pip 的问题

其实,为什么说软件编程业很难?就是因为,各种各样的情况掺杂在一起,很难辨别,本来感觉是 pip 的问题,结果发现是抓包的网络问题。
 

你可能感兴趣的:(电商平台api,python)