当你写爬虫抓不到APP请求包的时候该怎么办?【初级篇】

浏览: 1842

作者:loco    Python爱好者社区专栏作者

知乎:https://www.zhihu.com/people/loco_z

文中均为Android环境下,实战中可以尝试降低APP版本或者是尝试抓一下iOS版APP的包(如果有)。

助人为乐的我又来了,这次又是在逛v2ex时看到的一个求助帖。

帖子内容:https://www.v2ex.com/t/496299

最近在抓包一个 APP:淘最热点
一款新闻 APP
抓不到新闻列表内容
只抓到了新闻图片
其他同类型的 APP 也抓过
没出现这种问题
用的 charles 抓的,证书设置没问题
不知道是不是这个 APP 的新闻列表走了其他协议
有大佬帮忙抓下看看嘛

这位同学遇到了一个抓不到APP新闻列表请求包的问题,我们先把这个APP装上抓个包看看。

未抓到新闻列表的请求

直接抓包看起来确实没有新闻列表的请求,除了图中的这些部分以外全都是图片以及CONNECT请求。

插播一个小提示:Fiddler在这个地方可以移除图片和CONNECT这些干扰项。

Fiddler移除图片、CONNECT、非200状态码的请求

抓不到包就没法继续了,那么这种情况应该怎么办呢?不要慌,看完这篇文章后你就能轻松通杀90%以上无法通过直接设置个系统代理就能抓到包的APP。

(本文中因为【淘最热点】这个APP的反抓包弱的跟鸡一样,就先只介绍两种方法,等有更高难度的样例APP再来写中级/高级篇吧,当然只会这两种就已经可以通杀90%以上的了。。)

那么我们开始吧。。。

  1. 全局代理法

这里使用Proxy Droid(GitHub仓库:https://github.com/madeye/proxydroid)来实现全局代理的效果,注意它需要ROOT权限才能使用。

Proxy Droid的原理是通过iptables将所有TCP连接的端口全部重定向到代理的端口上,强制性地让APP的请求走代理。

可以选择自己编译APK后安装,也可以选择直接在应用商店(http://app.mi.com/,备用1:https://cn.apkhere.com/app/org.proxydroid)里下载安装,安装完后给它ROOT权限就可以开始使用了。

以下为演示部分:

设置好系统代理后打开Proxy Droid并设置好代理服务器的IP和端口(与系统代理填写一致即可),然后点击开启按钮。

此时再抓包就能抓到这个APP的列表页请求了。

2、VPN抓包法

如果全局代理还不行的话,可以尝试使用VPN抓包法,这里使用Packet Capture(https://www.coolapk.com/apk/app.greyshirts.sslcapture)来实现,这个APP不需要ROOT权限就能使用。

Packet Capture的原理是在本地创建一个VPN,使所有请求都从VPN中流过,从而实现不使用代理抓包的效果。(这个APP没有开源,处理部分都是调用的so库,APP本身只是个壳,想要看代码的话需要有一定的Android逆向知识和经验)

未开启抓包界面

开启抓包后界面

再插播一个小提示:使用Packet Capture抓包时可以只看某个APP的请求,设置方式如下

点击图中画框的图标,会出现一个搜索界面,输入你要抓包的APP名并点击启动抓包就可以了。

那么对这个APP抓包试试

成功抓到新闻列表请求

轻松抓到它的新闻列表。

不过Packet Capture的缺点也很明显,因为只有手机上的APP,并且没有能让PC端连接的接口,所以如果APP在短时间内发出的请求过多,想要找到需要的那一个就是一件很令人头疼的事情了。

好了,学会这两招的你现在已经可以通杀90%以上抓不到包的APP了( ﹁ ﹁ ) ~→

作者其它好文推荐:当你写爬虫时遇上Flash+加密的解决方式

Python的爱好者社区历史文章大合集

2018年Python爱好者社区历史文章合集(作者篇)

2018年Python爱好者社区历史文章合集(类型篇)

福利:文末扫码关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“ 课程 ”即可获取:

小编的转行入职数据科学(数据分析挖掘/机器学习方向)【最新免费】

小编的Python的入门免费视频课程

小编的Python的快速上手matplotlib可视化库!

崔老师爬虫实战案例免费学习视频。

陈老师数据分析报告扩展制作免费学习视频。

玩转大数据分析!Spark2.X + Python精华实战课程免费学习视频。

推荐 0
本文由 Python爱好者社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册