前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当你写爬虫抓不到APP请求包的时候该怎么办?【初级篇】

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

作者头像
Python编程与实战
发布2019-12-04 15:43:07
1.1K0
发布2019-12-04 15:43:07
举报

前言

文中均为 Android 环境下,实战中可以尝试降低 APP 版本或是尝试抓一下 iOS 版 APP 的包(如果有),但不建议太过依赖 iOS 版 APP

背景:

在逛v2ex的时候看到一个这样的求助帖:

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

分析:

看起来这位同学是遇到了一个APP的请求不走代理,以至于出现抓包时看不到关键的请求的问题,我们先来把这个APP装上,抓个包看看具体情况吧。

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

Tips:Fiddler在这个地方可以移除图片、CONNECT类型的请求等干扰项哦。

如果抓不到包的话就没法继续写爬虫了,那么这种情况应该怎么办呢?

不要慌,看完这篇文章后你就能轻松通杀90%以上无法通过直接设置系统代理就抓到包的APP。

这里说两种非常简单的方案吧:

1、使用强制全局代理

这里选用Proxy Droid这个工具来实现强制全局代理的效果。注意:需要有ROOT权限才能使用

Proxy Droid的原理是通过iptables将所有TCP连接重定向到代理服务器上,强制性地让APP的HTTP请求通过代理。

在安装Proxy Droid时可以选择clone一份GitHub仓库的代码然后自己编译安装,也可以选择直接在应用商店下载安装,推荐在GooglePlay上下载。

在其他应用商店比如UpToDown和ApkHere上也可以下载到。(安装完之后记得要给它ROOT权限)

使用方法很简单,设置好系统代理后打开Proxy Droid并设置好代理服务器的IP和端口,然后点击开启按钮。

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

2、使用V**抓包

如果使用强制全局代理方案的时候发现APP内请求速度明显变慢很多或是完全无效的话,可以尝试一下使用V**抓包,这里使用Packet Capture来实现。注意:这个APP不需要ROOT权限

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

因为没有开源,所以这个APP只能在应用商店里下载,推荐在GooglePlay上下载,酷安也是有的。

界面展示:

Tips:使用Packet Capture抓包时可以只看某个APP的请求,设置方式如下:

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

会过滤掉其他无关APP的请求,只保留你想要的这一个APP的。

那么我们来试试它的效果吧,打开抓包后,在淘最热点的新闻列表里随便翻几下页。

然后切回Packet Capture。

可以看到已经抓到很多请求包了。

找一个大小比平均值小的点进去看看(因为这里有图片,一般缩略图的大小和来源都比较相似,排除掉这些就是需要的那个API的请求了)。

轻松地抓到了它的列表页请求。

不过Packet Capture的缺点也很明显,因为只有手机上的APP,并且没有能从PC上连接的工具或接口。

所以如果被抓包的APP在短时间内发出的请求过多,想要找到需要的那一个就是一件很令人头疼的事情了。

好了,学会了这两招的你,现在可以通杀90%以上抓不到包的APP了。

作者:Loco 来源:知乎

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python编程与实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 背景:
  • 分析:
  • 1、使用强制全局代理
  • 2、使用V**抓包
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档