我 JS 逆向都没搞明白,就要学 App?

你好,我是悦创。

欢迎来到 AI悦创·进化岛 学会透过现象看本质,不被割韭菜!

在我们学习爬虫的时候其实就不可遏制的要去破解 Web 端的 JS 等等,可学 JS 的话可不是简单的事情,还需要加密学、JS 基础语法(或高级语法)、Python 执行 JS 脚本等等,天哪噜!渐渐的就会发现,不仅要学 JS 还要学 App ,这个 App 爬虫有什么用?别急听我慢慢道来!

1. 我们会学到什么?

概要:

  • 学会安卓模拟器的环境搭建
  • 学会抓包利器的使用
  • 学会自动化控制工具的使用
  • 学会利用 Python 编写爬虫抓取 App 数据

那么这个专栏我们将会学到什么呢?

  1. 首先,我们要抓取 App 数据,那小伙伴有可能会问:我没有多余的手机该怎么办呢?

答:没有手机也没有关系,本次专栏课程我们将会通过安卓模拟器来演示。

  1. 安卓环境搭建好了,我们该如何抓取数据呢?

答:这里我将会给大家介绍三款抓包利器,来以此满足大家在工作中的需求。

  1. 有了抓包利器就够了吗?

答:其实,并不是,我们需要使用自动化工具对 App 应用进行自动化控制。(比如:翻页、模拟点击、定位元素等等操作。)

  1. 有了自动化工具控制 App 行为,之后呢?

答:这其实也是最重要的,我们要学会利用 Python 编写爬虫抓取 App 数据。

  1. 只能抓一个 App 吗?

答:当然不是,仅抓取一个 App 大家肯定不满足于此,我将带大家打造基于 docker 的多 App 端数据抓取系统。实现多 App 同时抓取数据,满足项目需求。

2. 学会这些技能能干什么呢?

这时候,会有同学会问。我们学完之后能干什么?我将从两方面进行分析。

第一方面:

对于 项目、团队、公司 来说,我们拿到 App 应用数据之后,我就可以做如下操作:

  1. 数据分析
  2. 用户画像
  3. 统计系统
  4. 商业竞争
  5. 数据分析:比方说我们拿到某汽车资讯 App 汽车报价的数据,通过分析建模我们就可以对公司现有的汽车业务进行估价。
  6. 用户画像:我们可以做用户画像,通过抓取 App 应用数据分析用户的行为(比方说:消费需求之类的),这样我们就可以使用这样的一个方法建立精准的用户画像,进行精准投放。
  7. 统计系统:对抓取到的 App 应用数据,我们可以做报表系统。
  8. 商业竞争:通过获取对手 App 应用平台上面所投放的应用数据(比方说:最近在某个地区或者某个特定用户群启动了哪些新的产品以及在某个城市的营销数据等等),根据这些数据,我们可以获取竞争对手目前在某个地区货特定用户群的运营状况。从而制定相应的商业策略进行应对,所谓知己知彼嘛。

第二方面:

对于我们 自己 来说我们可以实现如下:

  1. 实现自己的技能提升
  • 掌握抓取 App 应用数据的技能
  1. 面试必问
  • 如何抓取 App 应用数据?
  • 抓取过哪些项目?
  • 抓包工具如何使用?
  • ......
  1. 实现自己的技能提升:我们不仅仅能抓取 Web 上面的数据还能抓取 App 上面的数据。
  2. 面试必问:在我们面试或者跳槽面试的时候,爬虫工程师少不了会问这些问题。

3. App 应用数据好抓吗?

那既然要抓取 App 应用数据,答案是:既简单又困难。

为什么这么说呢?

这就像,你学习 Python 爬虫的时候——入门超级简单。进阶——举步维艰(JS 逆向)。那其实,手机 App 也是同理,变成了 App 逆向。

3.1 简单

简单我们指的是—— App 里面的数据比 Web 端更容易抓取,反爬也没那么强,大部分也都是 http/https 协议,返回的数据大部分是 json 数据,那我们得到 json 之后直接解析即可。

3.2 困难

困难我们指的有如下几点:

  1. 抓取 App 数据的时候,有时可能需要适当的反编译,分析出其加密算法并抓取到信息;
  2. App 可能进行了加固,需要脱壳,然后反编译,分析出加密算法并抓取到信息;
  3. 需要破解,App 的数据可能通过各式各样的签名,证书,设备绑定等方法,找到隐藏加密的算法。

4. 爬虫工程师技术树储备

因此,我们爬虫工程师在抓取 App 应用的时候,技术储备是需要多方面的。比如,你至少需要以下几点:

  1. Python 爬虫开发经验
  2. 为了逆向编译 App 应用,我们需要 Java 开发基础、Android 开发基础、App 逆向、App 脱壳以及破解加密算法等技能

这个时候,有小伙伴看到第二条的时候会有疑问,我们专栏是需要抓取这么多知识才能抓取 App 数据吗?

答:不是的,接下来我们来看看课程的安排计划,这样你就知道我们是如何来抓取 App 应用数据的。

5. 课程安排

5.1 我们的目的是?

我们的目的是 Python + 自动化控制应用 + 抓包工具,来解析 App 应用的方法,来进行数据的抓取。那像:Java 编程基础、安卓开发经验以及 App 内部加密算法这些,目前入门来说通通不需要。

5.2 设计内容

  1. Python 环境搭建
  2. 模拟器安装(夜神模拟器、Genymotion)
  3. 三款抓包工具的安装以及使用(Fiddler、Mitmproxy、Packet Capture)

首先会带大家进行所需要的环境搭建,然后本专栏会重点介绍,夜神模拟器的安装和使用,Genymotion 由于安装较为复杂并且报错比较多这样就导致了调式难度相对于夜神模拟器来说是比较高的。因此,在本专栏中我仅做个介绍。

而对于抓包工具我这里会介绍三种抓包工具,第一种就是大家在 Web 抓取数据的时候,经常使用的 Fiddler,那这个时候有小伙伴可能会说:这个 Fiddler 我会用,不久是抓包嘛!

那这里我要说的是,这个 Fiddler 不仅仅是一款简单的抓包工具,它还可以进行断点调试、重放(或者说重新请求)、请求构造等等多种功能。所以,本次专栏也会进行详细的讲解。

第二个抓包工具是 Mitmproxy 是本专栏中更加重要的抓包工具,我们将通过 Mitmproxy 进行数据的抓取、分析以及 Python 脚本进行交互来以此解析 App 数据。

第三个就是安装在安装在 Android 系统上的一款抓包工具,它是一款 App ,它可以抓取 App 应用的请求以及服务器的响应数据,在本专栏中我也将给大家介绍。

对于前面提到的自动化控制 App 应用,我将会使用 appium ,以及为了最后实现多任务抓取系统,我会给大家简单讲解 docker 环境安装。

5.3 实战对象

在本专栏中,我们将会使用那些该技术抓取哪些 App 应用对象呢?

  • 入门:豆果美食

目的:教会大家使用抓包工具并分析 App 数据的请求接口,以及响应数据等等,以及使用 Python 多线程进行数据抓取。

  • 使用 appium 的自动化功能给大家讲解,App 应用抓取的进阶:抖音 App

目的:抓取评论、关注数、获赞数以及作品数目等等。

最后在多任务抓取数据中,结合前面所学习到的内容。来并行抓取抖音、快手、今日头条三款 App 应用数据。我们会将数据存储到 MongoDB 。接下来我们来看看我们的架构图:

img

5.4 专栏特点

  • 由浅入深,因为都是从小白开始学的,所以我们会从环境搭建开始讲解;
  • 触雷式教学,每一个安装步骤,使用到的问题,遇到的坑都会给小伙伴们进行讲解;
  • 多工具对比,从上面的介绍,相比你已经有所了解,我们会从多工具的对比来进行学习;
  • 多实例展示,多个 App 应用的抓取展示;
  • 紧贴技术潮流

5.5 补充

对上面提到的软件或者方法进行简单的汇总。

1. Fiddler

  • Fiddler 工作原理、主界面介绍
  • Request & Response 数据包结构
  • 设置断点、重放、重定向
  • 设置移动端安装证书
  • 设置手机代理服务器
  • 解密手机端数据包

2. Mitmproxy

  • Mitmproxy 与 Fiddler工具的区别,
  • Mitmproxy 设置断点、重放、重定向
  • Mitmproxy 设置移动端安装证书
  • Mitmproxy 解密手机端数据包
  • Mitmproxy 与 Python 交互

3. Appium-Desktop

  • APP 界面分析、节点定位、Xpath编写
  • 对 APP 界面进行分析及行为录制
  • 设置 Appium-Desktop 服务端
  • 通过 Python 对安卓模拟器进行控制 demo
  • 模拟自动化登录等

本章我对该专栏进行了简单的介绍,接下来我们将会对环境安装进行讲解,记得来按时来上课噢!

AI悦创·创造不同!
AI悦创 » 我 JS 逆向都没搞明白,就要学 App?

Leave a Reply