App数据的爬取

App数据的爬取

在网页中,我们可以借助浏览器开发者工具中的Network面板看到网页中产生的所有网络请求和响应内容,然而App怎么办呢?想拦截App中的网络请求,就得用到抓包工具了,例如Charles、Fiddler、mitmproxy等,我们可以通过这些工具拦截App和API通信的请求内容和响应内容,如果能从中找到一定的规律,就可以用程序直接构造请求来模拟API的请求,从而完成数据爬取。

1. Charles抓包工具的使用

Charles是一个网络抓包工具,可以用它抓起App运行过程中产生的所有请求内容和响应内容,这和在浏览器开发者工具的Network面板中看到网页产生的内容是一样的道理。

Charles、Fiddler等都是非常强大的HTTP抓包软件,功能基本类似,下面以Charles作为移动端抓包工具分析App的数据包。

  • 目标

以一个电影示例App为例,利用Charles抓取这个App在运行过程中产生的网络数据包,然后查看具体的请求内容和响应内容。同时使用Python改写抓取到的数据包中的请求,继而爬取App数据。

  • 准备工作

Charles运行在一个电脑上,运行的时候会在该电脑的8888端口开启一个代理服务,首先请确保已经正确安装好Charles并开启了代理服务。本人是mac系统下的Charles试用版。然后再准备一部Android手机或模拟器(系统版本最好在7.0以下),并让手机或模拟器的网络和Charles所在电脑的网络处于同一个局域网下(可以让模拟器通过虚拟网络与电脑连接,也可以让手机真机和电脑连接同一个Wi-Fi)。之后设置好Charles代理和Charles CA证书,在Charles中开启SSL监听整个配置过程可以在[小蜜蜂AI网站][https://zglg.work]的GPT问答获取。SSL代理配置一定要开启,而且Location的host和port都设置为*。

在这里插入图片描述

  • 抓包原理

​ 设置手机代理为Charles的代理服务地址,这样手机访问互联网的数据包就会先流经Charles,再由Charles转发给真正的服务器;同样,服务器返回的数据包也会先到达Charles,再由Charles转发给手机。整个过程中的Charles相当于中间人,可以捕获所有数据包,就是可以捕获所有请求内容和响应内容。而且,Charles还可以对请求的内容和响应的内容做修改。

  • 实战抓包

    打开Charles,运行界面如下图所示:

在这里插入图片描述

Charles会一直监听手机产生的数据包,捕获的数据包将显示在界面左侧,随着时间的推移,会捕获越来越多的数据包,左侧列表里的内容也越来越多。

现在打开手机上下载的app1,(安装包下载地址为https://app1.scrape.center/,访问即可下载)。如下图所示:

在这里插入图片描述

会发现Charles已经捕获了对应的数据包,其界面类似下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bruce_xiaowei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值