首页
|
资讯
|
生活
|
电脑
|
互联网
|
手机
|
财经
|
教育
|
简易号
|
高级搜索
焦点
股票
程序开发
站长技术
抖音
安卓
电商
iphone
微信
理财
职场
美食
您当前的位置:
首页
>
电脑百科
>
程序开发
>
语言
>
Python
Python高级反爬虫类型(App反爬虫)
时间:2021-04-20 10:51:21 来源: 作者:Python小叮当
+ 加入收藏
前言
将爬虫的爬取过程分为网络请求,文本获取和数据提取3个部分。
信息校验型反爬虫主要出现在网络请求阶段,这个阶段的反爬虫理念以预防为主要目的,尽可能拒绝反爬虫程序的请求。
动态渲染、文本混淆则出现在文本获取及数据提取阶段,这个阶段的反爬虫理念以保护数据为主要目的,尽可能避免爬虫获得重要数据
特征识别反爬虫通过客户端的特征、属性或用户行为特点来区分正常用户和爬虫程序的手段
App
网络传输和数据收发相对隐蔽,用户无法直接查看客户端发出的请求信息和服务端返回的响应内容,也无法直接查看App的代码,构成了反爬虫
Python
/ target=_blank class=infotextkey>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代码混淆反爬虫
代码混淆:将代码转换成一种功能等价但人类难以阅读和理解的文本。混淆指使用简短或冗长且无规律的字符替代代码中的方法、类和变量的名称,在缺乏注释和混淆映射表的情况下,工程师几乎无法阅读项目代码。
Anfroid代码混淆其实是对项目中的字符进行映射与压缩。混淆时会将代码中的类名、变量名和函数名用无意义的简短名称进行映射,如:
# 映射示例:映射前 ————》 映射后
seaking ————》 eclass indexview ————》 class v
这样能够保证反编译APK后得到的代码无法见名知意,令APK难以被逆向。Android可以使用ProGuard
ProGuard是Android官方提供的代码压缩和混淆工具,它会检测和移除封装应用中的未使用的类、字段、方法、属性以及自带代码库中的未使用项。ProGuard还可以优化字节码,移除未使用的代码指令,以及用短名称混淆其余的类和方法。
每次构建混淆规则时,ProGuard会在/build/outputs/mapping/release/中输出下列文件。
"""这些文件便于开发者对混淆后的代码进行追踪和调试,如果mapping,txt该文本被覆盖或丢失,那么即使是项目开发者,也无法阅读混淆过后的代码"""
dump.txt:说明APK中所有类文件的内部结构;mapping.txt:提供原始与混淆过的类、方法和字段名称之间的转换;seeds.txt:列出未进行混淆的类和成员;usage.txt:列出打算从APK文件中移除的代码
代码混淆并不能阻止APK被反编译,但是可以有效提高他人阅读程序代码的难度,进而加强对数据的保护。代码中的字符串并不会被混淆
(4)App应用加固知识扩展
除了Android官方文档介绍的代码混淆方法外,App一般从防逆向、防调试、防篡改和防窃取的角度出发,使用DEX加密、LLVM混淆、
内存
监控等手段保护自己的源代码和资源
DEX加密的主要目的是防止App被反编译。JADX等反编译工具实际上是先将DEX文件编译成Smail语言的代码,再转换成class文件进行阅读和修改。DEX加密实际上是用代码对Android项目的Classes.dex文件进行加密,就像在原来的DEX上面加了一层壳一样,所以DEX加密又称为加壳。
(5)App应用程序自动化测试工具Appium和Airtest
Appium提供了滑动、触摸(点击)、长按、模拟输入和文本提取等常见功能;
Airtest Project也提供了滑动、触摸(点击)、长按、模拟输入和文本提取等常见功能;它还支持“图码”混合编程
6、验证码
验证码
Tags:
App反爬虫
点击:() 评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Python高级反爬虫类型(App反爬虫)
前言 将爬虫的爬取过程分为网络请求,文本获取和数据提取3个部分。 信息校验型反爬虫主要出现在网络请求阶段,这个阶段的反爬虫理念以预防为主要目的,尽可能拒绝反爬虫程序的请...
【详细内容】
2021-04-20 Tags:
App反爬虫
点击:(750) 评论:(0)
加入收藏
▌简易百科推荐
什么是Web3.0,与当下Web有什么区别,在未来真的能实现吗?
近几年 Web3 被炒得火热,但是大部分人可能还不清楚什么是 Web3,今天就让w3cschool编程狮小师妹带你了解下 Web3 是什么?与我们熟知的 Web1 和 Web2 又有什么区别呢?web3.0什么是...
【详细内容】
2022-07-15 编程狮W3Cschool Tags:
Web3.0
点击:(2) 评论:(0)
加入收藏
手机Python编程神器——AidLearning
1、让我们一起来看下吧,直接上图。 第一眼看到是不是觉得很高逼格,暗黑画风,这很大佬。其实它就是------AidLearning。一个运行在安卓平台的linux系统,而且还包含了许多非常强大...
【详细内容】
2022-07-15 IT智能化专栏 Tags:
AidLearning
点击:(2) 评论:(0)
加入收藏
基于Python+vue的自动化运维、完全开源的云管理平台
真正的大师,永远都怀着一颗学徒的心! 一、项目简介 今天说的这个软件是一款基于Python+vue的自动化运维、完全开源的云管理平台。二、实现功能 基于RBAC权限系统 录像回放 ...
【详细内容】
2022-07-14 菜鸟程序猿 Tags:
Python
点击:(3) 评论:(0)
加入收藏
python接口自动化之MySQL数据连接
前言今天笔者想和大家来聊聊python接口自动化的MySQL数据连接,废话不多说咱们直接进入主题吧。 一、什么是 PyMySQL?PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,P...
【详细内容】
2022-07-11 测试架构师百里 Tags:
python
点击:(19) 评论:(0)
加入收藏
Python异步之aiohttp
aiohttp什么是 aiohttp?一个异步的 HTTP 客户端\服务端框架,基于 asyncio 的异步模块。可用于实现异步爬虫,更快于 requests 的同步爬虫。安装pip install aiohttpaiohttp 和 r...
【详细内容】
2022-07-11 VT漫步 Tags:
aiohttp
点击:(15) 评论:(0)
加入收藏
Python Queue 进阶用法
今天我们学习下 Queue 的进阶用法。生产者消费者模型在并发编程中,比如爬虫,有的线程负责爬取数据,有的线程负责对爬取到的数据做处理(清洗、分类和入库)。假如他们是直接交互的,...
【详细内容】
2022-07-06 VT漫步 Tags:
Python Queue
点击:(34) 评论:(0)
加入收藏
python四大特性(封装,继承,重写,多态)
继承:是面向对象编程最重要的特性之一,例如,我们每个人都从祖辈和父母那里继承了一些体貌特征,但每个人却又不同于父母,有自己独有的一些特性。在面向对象中被继承的类是父类或基...
【详细内容】
2022-07-06 至尊小狸子 Tags:
python
点击:(25) 评论:(0)
加入收藏
Python自动化之Python输出函数
点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍。本文1553字,阅读约需4分钟 Hi,大家好,我是CoCo。在上一篇Python自动化测试系列文章:Python自动化测试之P...
【详细内容】
2022-07-05 CoCo的软件测试小栈 Tags:
Python
点击:(27) 评论:(0)
加入收藏
Python request使用方法及问题总结
第一种方式:res = requests.get(url, params=data, headers = headers)第二种方式:res = requests.get(url, data=data, headers = headers)注意:1.url格式入参只支持第一种方...
【详细内容】
2022-07-05 独钓寒江雪之IT Tags:
Python request
点击:(19) 评论:(0)
加入收藏
用通俗易懂的多态世界观实例:理解python类的多态
什么是python类的多态python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。用比喻的方式理解python类的多态比如,同一个苹果(统一的接口)在孩子的眼里(类实...
【详细内容】
2022-07-04 写小说的程序员 Tags:
python类
点击:(28) 评论:(0)
加入收藏
推荐资讯
一文搞懂响应式编程
Android开发组件化与
最流行的 .NET 反编译
MyBatis源码解读 | 使
mysql数据库中的my.in
女生,人生第一支大牌口
防晒不分男女!防晒帽同
手表鉴定 | 一眼看真
相关文章
无相关信息
站内最新
栏目相关
·
什么是Web3.0,与当下Web有什么区别,在未来真的能实现吗?
·
手机Python编程神器——AidLearning
·
基于Python+vue的自动化运维、完全开源的云管理平台
·
python接口自动化之MySQL数据连接
·
Python异步之aiohttp
·
Python Queue 进阶用法
·
python四大特性(封装,继承,重写,多态)
·
Python自动化之Python输出函数
·
Python request使用方法及问题总结
·
用通俗易懂的多态世界观实例:理解python类的多态
·
爬虫利器 Beautiful Soup 之遍历文档
·
告别加班!Python批量生成合同文档,解决合同重复制作问题
·
python端口遍历
·
python爬虫之爬取疫情数据
·
python 一键生成对账单
·
Python 模块 collections
·
Python接入不同类型数据库的通用接口方法
·
提效工具-python解析xmind文件及xmind用例统计
·
python带你采集汽车数据,以后买车就有参考了
·
Python 全自动解密解码神器—Ciphey
站内热门
相关头条
·
Python自动化之Python输出函数
·
python带你采集汽车数据,以后买车就有参考了
·
用pandas爬取数据,太实用了
·
Python数据分析学习三步曲
·
Python 3.11比3.10 快60%:使用冒泡排序和递归函数对比测试
·
Python 增强视频画质,就这么做
·
Python 图像处理
·
Python 带你采集抖音无水印视频内容,把你喜欢的视频保存
·
手把手教你写20个Python小游戏,童年的回忆有趣又好玩「附源码」
·
python数据类型-列表(list)
·
68 个 Python 内置函数详解
·
Python编码封装
·
用Python直观查看贵州茅台股票交易数据
·
初识python正则表达式
·
Python实现天气查询功能
·
3个提升Python运行速度的方法,很实用
·
详解Python软件安装教程和配置,小白都能看懂的教程,值得收藏
·
Python发送微信消息(文字、图片、文件)给指定好友和微信群
·
Python中的五种下划线
·
python time库(时间库)学习和应用
站内头条
新闻
下载
图库
FLASH
电影
商品
文章
分类信息
高级搜索
网站首页
|
关于我们
|
服务条款
|
广告服务
|
联系我们
|
网站地图
|
免责声明
|
手机版
Copyright @
简易百科
V 2.0 ©2020-2022
ISOLVES.com
|
电脑百科
|
生活百科
|
手机百科
|
简易号
京ICP备14042104号
京公网安备 11010802035086号
QQ:2595517585