适合selenium的防自动化检测的方法

  • 修改User-Agent: 通过 Chrome 或 Firefox 的选项在启动时设置自定义的 User-Agent。
  •    from selenium.webdriver.chrome.options import Options
       
       chrome_options = Options()
       chrome_options.add_argument("user-agent=YourCustomUserAgentString")
       driver = webdriver.Chrome(options=chrome_options)
       
  • 使用代理IP: 在启动 WebDriver 时配置代理服务器
  •    proxy = "ip:port"
       chrome_options.add_argument('--proxy-server=%s' % proxy)
       
  •  模拟人类行为: 在脚本中插入随机延时。
  •    import time
       import random
       
       time.sleep(random.uniform(1, 3))  # 模拟用户操作间的随机延迟
       
  • 处理Cookies: 使用 Selenium 的 add_cookie 方法管理Cookies。
  • JavaScript执行: Selenium 自带JavaScript执行功能,可以直接调用 execute_script 方法。
  • 减少请求频率: 通过在代码中控制循环或请求的间隔时间。
  • 多浏览器/版本切换: Selenium 支持多种浏览器和驱动,可以通过选择不同的 WebDriver 实现。
  • 禁用或修改JavaScript特性: 通过浏览器选项禁用JavaScript或利用浏览器扩展来修改JavaScript环境(较为复杂,可能需外部工具辅助)。
  • 使用无头模式的谨慎: 通过设置选项启用或禁用无头模式。
  •    chrome_options.add_argument("--headless")
       

    随机化请求头: 除了User-Agent,其他头部信息也可以通过类似方式动态设置。
    处理验证码: Selenium 可以用于定位验证码元素,但验证码的识别通常需要配合OCR技术或其他服务。
    遵守robots.txt: 虽然 Selenium 本身不直接处理robots.txt,但开发人员应自觉遵守其规定。
    以上策略均可在 Selenium 中实现,但需注意合理应用,确保不会违反网站政策或法律法规。

  • 上一篇:Java & SQL 连接(初级)


    下一篇:ArcGIS Pro SDK (八)地理数据库 3 数据