关于爬虫技术中的“外部逆向”相关的概念。
1. 外部逆向的基本概念:
- 外部逆向主要是对加密的数据进行解密,这通常出现在我们爬取一些网站时。比如,数据加密、请求头参数加密、表单加密、Cookie加密等。它们的共同特点是,数据经过加密处理后,爬虫无法直接获取有用的数据,需要通过逆向分析解密过程。
2. 加密与解密:
- 在学习爬虫时,有些网站会加密数据,这时我们需要了解如何找到加密的解密逻辑。一般来说,浏览器本身已经执行了解密逻辑,我们可以通过分析浏览器端的JS代码找到这些加密和解密的过程,并用爬虫模仿这些逻辑。
3. 请求头、表单、参数和Cookie的加密:
- 对这些内容的加密不同于简单的数据加密,需要分析如何通过模拟请求头、表单、参数等信息的生成逻辑,使得我们的爬虫能够顺利向服务器发送请求并获得正确的响应。
4. 服务器如何验证加密数据:
- 服务器本身并不知道传递的数据在加密后的具体内容,但它知道加密前的原文。服务器使用某种加密算法来对数据进行加密,从而验证爬虫生成的数据是否符合要求。因此,爬虫需要模拟服务器的加密算法,确保加密过程一致。
5. 加密算法的常见类型:
- 常见的加密算法包括对称加密算法(如AES和DES)和非对称加密算法(如RSA),以及消息摘要算法(如MD5和SHA)。其中,MD5和SHA等算法主要用于数据的完整性校验,但它们不能逆向解密。
6. 混淆和JS逆向:
- 许多网站在使用JavaScript时会进行混淆和压缩,使得JS代码不容易被分析。爬虫需要应对这种混淆,通过分析解密JS脚本,逐步找出解密和加密逻辑。
7. 如何应对混淆代码:
- 当遇到混淆的代码时,首先需要理解如何处理这些被压缩和混淆的JS代码,常见的混淆方法包括变量名重命名、去除空白和注释、代码压缩等。通过逆向分析这些混淆的JS代码,我们可以还原加密和解密逻辑。
总的来说,就是理解如何通过逆向分析加密和解密的过程,以及如何利用这些技术模仿服务器的加密方式,从而实现爬虫的功能。后续会深入学习如何实际应用这些技术,并通过编码实现对加密数据的处理。