App数据抓取(基础篇)

文章目录

  • 简介
  • 环境搭建
    • 夜神模拟器
    • fiddler
    • mitmproxy
    • Packet Capture
    • Appium
    • Docker
  • 小结

简介

  • 虽然App的反爬机制没有Web端那么复杂,但需要Java开发基础、Android开发经验哈app内部加密算法相关的知识
    • 涉及到的内容包括:
      App数据抓取(基础篇)_第1张图片
    • 为了熟悉流程,打造数据获取通路,主要掌握的内容简化为以下几部分
      • 夜神模拟器的使用
      • Fiddler抓包工具的使用
      • appium实现自动化控制app应用
      • Docker环境实现多任务
    • 先从一款简单的App应用入手,后面实现并行的抓取抖音、快手和今日头条的数据
      App数据抓取(基础篇)_第2张图片

环境搭建

  • Android模拟器的使用
    • 可以直接使用你的手机,但是安全起见,使用模拟器也方便调试
  • 常见开发模拟器的对比:
    App数据抓取(基础篇)_第3张图片
  • 抓包软件的安装
    • 这里主要使用fiddler和mitmproxy
  • 常见抓包软件的对比:
    App数据抓取(基础篇)_第4张图片
  • Docker的安装

夜神模拟器

  • 官网下载
  • 安装过程很简单,按照指引即可
  • 安装完成后会默认创建一个平板的模拟器
    • 在设置中开启ROOT
      App数据抓取(基础篇)_第5张图片
    • 也可在手机与网络中选择机型
    • 夜神为有些而生,可以多开几个:
      App数据抓取(基础篇)_第6张图片
    • 2核就要开启VT(CPU虚拟化,教程自己找)
  • 安装我们要爬取的应用
    • 如果直接在模拟器中搜索不到,可以在网上下载好apk,直接拖进去即可
  • 在模拟器的安装目录中,进入/bin目录,打开cmd窗口
    • 执行> ./adb.exe devices -l命令,查看正在连接的设备(手机)
      App数据抓取(基础篇)_第7张图片
    • 这就是夜神为我们买的手机;也可以使用此程序安装应用
      • 将安装包放在bin目录下,执行> ./adb.exe install xxx
      • 以上便是常见的三种安装app方式
  • 还有个模拟器叫Genymotion,不用,就先不说了!

fiddler

  • 一个Web调试平台,可以监控和修改数据流
    • 类似nginx实现负载均衡、转发请求
    • 更类似wireshark,就是一款抓包工具
      App数据抓取(基础篇)_第8张图片
  • 官网下载
    • 大致看一下界面:
      App数据抓取(基础篇)_第9张图片
  • 配置fiddler,在Tools中打开Option
    App数据抓取(基础篇)_第10张图片
    • 由于要作为中间人捕获流量,需要使用证书,同意即可!也可以设置要捕获流量的来源,可以是浏览器或远程客户端(移动端)
      App数据抓取(基础篇)_第11张图片
    • 配置个不冲突的端口号,同意远程连接
    • OK,配置好之后在谷歌浏览器上添加插件SwitchyOmega,设置代理
      App数据抓取(基础篇)_第12张图片
    • 配置为本地即可,要点击应用选项哦,然后选择使用刚配置的代理:
      App数据抓取(基础篇)_第13张图片
      • 相当于让请求经过本地的fiddler,没啥
    • 重启我们的fiddler,然后浏览器访问网页,即可抓包!
    • 捕获的数据可能需要Decode

mitmproxy

  • MITM(man in the middle attack)中间人攻击
    • mitmproxy即用于中间人攻击的代理
  • 和fiddler的作用原理类似:
    App数据抓取(基础篇)_第14张图片
  • 和fiddler代理一样能拦截修改转发返回请求,区别在哪呢?
    • 可以载入自定义python脚本
  • 安装:基于python的Linux操作系统
    • 如果在Windows系统中还需要visual C++ 14.0,直接打开cmd:pip install mitmproxy
      app15
    • 查看版本发现,与Linux交互一般使用mitmdump
      App数据抓取(基础篇)_第15张图片
    • 在Linux中也是类似的
  • 接下来的操作都在Linux终端(我用vmware虚拟机)
    • 输入mitmproxy启动,默认监听8080端口
    • 查看虚拟机IP,在浏览器中配置SwitchyOmega
    • 配置mitmproxy的证书
      • 访问这个网站mitm.it(要先配置代理),然后下载对应平台的证书并安装
        App数据抓取(基础篇)_第16张图片
    • 与Windows交互一般使用mitmweb,会弹出一个网页;也可以使用mitmdump -w test.txt将抓到的包保存在文件中

Packet Capture

  • 是一款免Root的APP,运行在安卓平台上,用来抓取App流量
  • 同样是使用中间人技术对SSL进行解密
  • 下载安装包,打开模拟器安装
    App数据抓取(基础篇)_第17张图片

Appium

  • 自动化测试开源工具,用于自动调用App功能,配合抓包工具使用,获取数据
  • 本质是封装了标准的Selenium类库(Web端测试工具)
  • 支持多平台、多语言
    • 采用CS模式,客户端只要能发送请求即可,屏蔽了语言特性
  • 工作原理:
    App数据抓取(基础篇)_第18张图片
    • 因为支持多语言,所以有多个客户端
    • 客户端将要执行的脚本发送给服务器解析,最后传递给真机执行
  • 下载Appium服务端并安装
    • 官网,可能需要科学上网,下载对应版本!
    • 也可通过node安装,不推荐
    • 客户端我们使用python,所以可通过pip直接安装
      App数据抓取(基础篇)_第19张图片

Docker

  • 和虚拟机相比:
    App数据抓取(基础篇)_第20张图片
    App数据抓取(基础篇)_第21张图片
    • 虚拟机需要将操作系统的内核安装部署,才能运行
    • 而Docker采用容器的思想,不需要硬件虚拟,能更高效的利用系统资源
    • 同时也保证了运行环境的一致性,便于测试和迁移
    • 一次配置,到处运行;即所谓的持续交付和部署
  • 不用太纠结,用了就知道有多好了!赶紧安装
    • 官网
    • 之前有两种:Docker-for-Windows和Docker-Toolbox,但是后者deprecated
      • Windows版本需要专业版或企业版才可,也要打开Windows的虚拟机Hyper-V
      • 这玩意儿对模拟器和VMware等有影响,详情
      • 所以咱直接打开虚拟机在Ubuntu上搞,详情
    • 安装之后在桌面有个quickstart,用来初始化Docker
    • 初始化完成后会进入Docker终端
      • docker version查看版本
      • docker run hello-world运行一个简单程序
      • docker run -it ubuntu bash下载并进入Ubuntu交互界面
      • docker images查看下载的镜像,docker rmi hello-world删除镜像

小结

  • 基础环境的搭建先到这里,后续先深入学习抓包工具的使用

你可能感兴趣的:(一起爬,docker,python,app,爬虫)