App反爬虫 Python高级反爬虫类型

前言

  • 将爬虫的爬取过程分为网络请求,文本获取和数据提取3个部分 。
  • 信息校验型反爬虫主要出现在网络请求阶段,这个阶段的反爬虫理念以预防为主要目的,尽可能拒绝反爬虫程序的请求 。
  • 动态渲染、文本混淆则出现在文本获取及数据提取阶段,这个阶段的反爬虫理念以保护数据为主要目的,尽可能避免爬虫获得重要数据
  • 特征识别反爬虫通过客户端的特征、属性或用户行为特点来区分正常用户和爬虫程序的手段
  • App网络传输和数据收发相对隐蔽,用户无法直接查看客户端发出的请求信息和服务端返回的响应内容,也无法直接查看App的代码,构成了反爬虫
  • Python常见反爬虫类型(信息校验型、动态渲染、文本混淆、特征识别反爬虫等)
5、App反爬虫(1)App抓包软件
  • 可以安装mitmproxy、charles、fillder三者之一对手机抓包
  • 原由:借助抓包工具能够查看App的网络请求信息,前提是App使用的网络传输协议是HTTP;如果App使用的网络传输协议是HTTPS,需要计算机和手机端同时安装证书;
  • 漏点:对于Android手机只有版本号小于7的Android系统才允许在证书得到信任后对App抓包,高版本的需要刷机(有风险);
  • 推荐:选择使用Android模拟器(一个能够在计算机上运行Android系统的应用软件),模拟器允许用户安装任意版本的Android系统,在接近真机体验的同时还不会造成任何设备的损坏;
(2)APK文件反编译
  • 签名验证是防止恶意连接和避免服务器端被数据欺骗的有效方式之一,也是后端API常用的防护手段之一;
  • 高级语言的源程序需要通过编译生成可执行文件,编译就是将编程语言翻译成计算机能够识别和处理的二进制数据的过程;
  • 反编译又名计算机软件反向工程,指的是将软件应用还原成开发语言代码的过程;
  • APK(Android Application Package)即Android应用程序包,如果我们想要查看Android应用程序的源码,就需要使用反编译手段提取APK中的代码;
  • 借助反编译软件Apktool和JADX将APK反编译成代码
  • 示例:安装JADX软件>启动JADX软件后>点击“文件”菜单并在下方列表中选择“打开文件”>选择对应的APK文件>点击菜单栏“导航”_“搜索文本”>转到相应代码 ;JADX软件使用 , jadx下载与使用,jadx安装包
  • App与服务器的通信使用的也是HTTP协议和WebSocket协议,所以基于这两种网络协议的反爬虫手段可以应用在App上,想要查看App的代码,必须将对应的APK文件反编译成代码
(3)App代码混淆反爬虫