m0_51399306 2024-02-12 18:42 采纳率: 33.3%
浏览 10
已结题

关于web自动化remote-debugging-port=9222

想使用自动化,但是chrome.exe --remote-debugging-port=9222启动谷歌浏览器被老是跳验证码识别很麻烦,直接chrome.exe 又不会,有没有什么办法能解决,最好是从启动参数里面

  • 写回答

22条回答 默认 最新

  • 专家-赤兔[在线] 2024-02-12 18:42
    关注
    获得0.60元问题酬金

    引自免费微信小程序:皆我百晓生

    在使用 --remote-debugging-port=9222 参数启动 Chrome 时遇到验证码问题,这通常是因为 Chrome 启动后访问的某个页面触发了安全机制或者受到网络策略的影响。对于自动化测试和爬虫场景,确实需要避免此类人工交互。以下是一些可能的解决方案:

    1. 代理或无头模式

      • 如果验证码是由于网络请求导致,可以尝试设置系统代理或者在启动参数中指定代理服务器,绕过直接连接到目标网站。
      chrome.exe --remote-debugging-port=9222 --proxy-server="http://your-proxy:port"
      
    2. Chrome Headless 模式

      • 使用无头模式启动 Chrome,可以有效避免打开 GUI 界面触发验证码的问题。
      chrome.exe --headless --remote-debugging-port=9222
      
    3. 用户数据目录

      • 有时验证码与特定用户cookies或浏览历史有关,你可以尝试使用一个新的用户数据目录来启动浏览器。
      chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\path\to\new\profile"
      
    4. 禁用扩展和插件

      • 扩展或插件可能会引入验证码验证逻辑,禁用它们也许能解决问题。
      chrome.exe --remote-debugging-port=9222 --disable-extensions
      
    5. Selenium WebDriver

      • 若你是在做自动化测试,推荐使用 Selenium WebDriver 结合 ChromeDriver(适用于无头模式和非无头模式),它可以更好地控制浏览器行为并有可能规避验证码问题。
      from selenium import webdriver
      
      options = webdriver.ChromeOptions()
      options.add_argument('--remote-debugging-port=9222')
      options.add_argument('--headless') # 如果需要无头模式
      driver = webdriver.Chrome(chrome_options=options)
      
      # 这里是你的自动化脚本...
      
    6. 验证码识别服务

      • 对于无法规避的验证码,可能需要集成OCR识别服务或第三方验证码识别API来自动识别和填写。

    请注意,绕过验证码可能违反网站的服务条款,并且不利于网站的安全性,因此在实际应用中请确保你的操作符合法律法规以及道德规范。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月20日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 轮廓提取也提取不到,有没有别的方法,如何解决?
  • ¥50 Js和c++如何将含有图片的excel文件上传到后台服务器
  • ¥15 光电神经网络,FPGA
  • ¥20 通过防火墙出入站阻止游戏程序联网失效
  • ¥15 鼠标是可以在QT界面上移动的,但是热拔插鼠标无法移动了同时板子上是没问题的,如何解决?
  • ¥15 iframe嵌套显示问题
  • ¥20 【UE4】别人打包好的ue4游戏我该如何在自己的ue4引擎上运行
  • ¥15 power bi发布的链接地址打不开
  • ¥15 pip list列表中有库,但是编译时就显示缺少库
  • ¥15 安卓13,动态广播无法接受