反爬对抗实战:绕过验证码、反检测技巧

📂 所属阶段:第三阶段 — 攻防演练(中间件与反爬篇)


1. 验证码处理

# 方案一:使用验证码识别服务
import requests

def solve_captcha(image_url):
    # 调用第三方 API
    response = requests.post(
        'https://api.captcha-service.com/solve',
        files={'image': open(image_url, 'rb')}
    )
    return response.json()['result']

# 方案二:使用 Selenium 手动处理
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(url)
# 等待用户手动输入验证码
input("请输入验证码:")

2. 反检测技巧

# 隐藏 Selenium 标记
options = webdriver.ChromeOptions()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options)

# 设置真实 User-Agent
options.add_argument('user-agent=Mozilla/5.0...')

# 设置真实窗口大小
options.add_argument('--window-size=1920,1080')

3. 小结

反爬对抗策略:

1. 验证码:识别服务或手动处理
2. 检测:隐藏自动化标记
3. IP 封禁:使用代理
4. 频率限制:限速和延迟

最佳实践:
- 尊重 robots.txt
- 不过度爬虫
- 遵守法律

💡 记住:反爬对抗是一场军备竞赛。网站不断升级防护,爬虫不断升级技术。但要记住,合法合规是底线。


🔗 扩展阅读