一、反爬技术体系全景图
现代Web应用的常见反爬手段:
mermaid:
graph TD A[反爬体系] --> B[行为特征检测] A --> C[验证码体系] A --> D[指纹追踪] B --> B1[请求频率] B --> B2[鼠标轨迹] B --> B3[页面停留时间] C --> C1[图形验证码] C --> C2[滑动拼图] C --> C3[点选文字] D --> D1[浏览器指纹] D --> D2[设备指纹] D --> D3[IP信誉库]
二、验证码破解方案
2.1 验证码类型与应对策略
验证码类型 | 破解方案 | 工具推荐 |
---|---|---|
传统字符验证码 | OCR识别 + 降噪处理 | Tesseract/PaddleOCR |
滑动拼图 | 轨迹模拟 + 缺口识别 | OpenCV/深度学习模型 |
点选文字 | 文字识别 + 坐标计算 | YOLOv5/PP-OCRv3 |
智能验证(极验等) | 绕过方案 + 第三方打码平台 | 2Captcha/DeathByCaptcha |
2.2 自动化验证码处理框架
class CaptchaSolver:
def __init__(self, api_key):
self.api_key = api_key # 打码平台密钥
def solve_image_captcha(self, image_path):
# 使用本地模型识别
try:
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True)
result = ocr.ocr(image_path, cls=True)
return result[0][1][0]
except:
# 降级到第三方API
return self._use_thirdparty_api(image_path)
def _use_thirdparty_api(self, image_path):
import requests
files = {'file': open(image_path, 'rb')}
resp = requests.post(
f'http://2captcha.com/in.php?key={self.api_key}',
files=files