【爬虫进行时】手机客户端app爬虫抓包(Fiddler)

鉴于目前会常用到爬虫来采集一些数据以支持和解决问题,开贴记录验证出来的好用的methods、tools、problems 和 solutions。

之前有个需求抓b站的数据,由于当时并不会从手机app抓包,而且时间较紧急,没有工夫来细细研究,就只能尽量从网页端来对数据进行爬虫。所幸,大部分的数据网页端都很完备。现在有空了,来研究一下如何从手机客户端的B站app进行抓包。٩(•̤̀ᵕ•̤́๑)

 

APP数据抓取:

50%的app,通过抓包软件就可以分析出抓取参数并抓取到信息。

30%的app,可能需要适当的反编译,分析出加密算法并抓取到信息。

10%的app,可能加固,需要脱壳,然后反编译,分析出加密算法并抓取到信息。

10%的app,通过各式各样的签名,证书,设备绑定等方法,隐藏加密算法。

总的来说,没有不能抓取的app,只是时间成本的问题。

抓包

抓包有代码经验或APP开发的同学都很容易理解,其实很多APP,走的都是webservice通讯协议的方式,并且由于是公开数据,而且大部分是无加密的。所以只要对网络端口进行监测,对APP进行模拟操作,即可知道APP里面的数据是如何获取的。我们只需要写代码模拟其请求,无论POST还是GET,即可得到该请求所返回的信息。再通过对返回的信息结构化解析,即可得到我们想要的数据。

HOOK技术

HOOK技术是一种走操作系统内核的技术,由于安卓系统是开源的,所以可以借助一些框架修改内核,从而实现你要的功能。HOOK的形式,我们走的是Xposed框架。Xposed是一款可以在不修改任何其他开发者开发的应用(包括系统服务)的情况下,改变程序运行的一个开源框架服务。基于它可以制作出许多功能强大的模块,以此来达到应用程序按照你的意愿运行的目的。如果把安卓手机看做一座城堡,那Xposed可以让你拥有一个上帝视角,城里的运作细节尽收你眼底,还能让你插一手改变城堡的运作规律。什么意思呢?简单的说就是你可以通过他,自动化的控制你的APP。如果将我们的APP开在模拟器上,我们可以通过编码,通过他告诉APP这一步干什么,下一步干什么。你把它理解成类似按健精灵或游戏打怪外挂就可以了。而他每走一步,APP与服务端交互的数据,均可获取下来。这种方式广泛用于一些成熟的APP。比如某信采集。

模拟点击

通过程序模拟人的行为对APP的界面进行点击、滑动等操作,同时可以获取APP的Activity页面上的大部分控件上的文本信息(有一些可能获取不到,Uiautomator本身就获取不到)

————————————————
原文链接:https://blog.csdn.net/zzq900503/article/details/94736168

 

工具准备:

博主当前常用的进行手机app抓包的工具有fiddler和appium。

【Fiddler安装配置】手机APP端爬虫抓包

1. 下载安装Fiddler。https://www.telerik.com/download/fiddler

2. Fiddler进行配置,Tools - Options,根据提示下载安装证书。配置完关闭fiddler,重新打开即可生效。

 a. Decrypt HTTPS traffic 下的下拉框可自己筛选需要监听的HTTPS类别

【爬虫进行时】手机客户端app爬虫抓包(Fiddler)_第1张图片

 b.监听端口Fiddler listens on port可以自己设置,默认为8888

【爬虫进行时】手机客户端app爬虫抓包(Fiddler)_第2张图片

3. 手机和PC务必同处一个局域网。电脑cmd使用ipconfig命令查看网络ip配置,记录IPv4的ip地址。

【爬虫进行时】手机客户端app爬虫抓包(Fiddler)_第3张图片

4. 将手机上WiFi进行设置,手动配置代理,ip地址 = 电脑IPv4地址,端口 = fiddler的监听端口8890(如步骤2里设置)

【爬虫进行时】手机客户端app爬虫抓包(Fiddler)_第4张图片  【爬虫进行时】手机客户端app爬虫抓包(Fiddler)_第5张图片

5. 手机浏览器上地址栏输入ip地址+端口,如此案例中为http://10.0.150.246:8890,在手机上下载安装FiddlerRoot certificate证书。(根据手机提示信任该证书)

【爬虫进行时】手机客户端app爬虫抓包(Fiddler)_第6张图片

6. 点开手机端app,在fiddler上监听查看,验证ok,配置步骤完成。

【爬虫进行时】手机客户端app爬虫抓包(Fiddler)_第7张图片

常见问题:

1. 根据步骤全部配置好之后,ios手机上不了网,打不开任何页面,显示连接服务器不安全

解决办法:iOS 10.3升级之后,安装的证书默认是不启用的,需要手动去开启。【设置 –> 通用 –> 关于本机 –> 证书信息设置】打开Fiddler的证书开关就行了。

2. 打开Fiddler之后,可以抓到手机app的包,但是全是中文乱码

方法1:勾选Decode或单击黄色长条“Click to decode”进行尝试。

方法2:修改注册表,无论网页charset是gb2312还是utf8均能正常解析: 1. windows桌面搜索“注册表” ;2. HKEY_CURRENT_USER\Software\Microsoft\Fiddler2;3. 右键新建,字符串值,名称为HeaderEncoding,值输入GBK。保存后,重启Fiddler。

 

【Appium】

(未完,待补充)

你可能感兴趣的:(爬虫Srapper,python,网络,https,android)