cmis123456789 2024-02-07 16:48 采纳率: 16.7%
浏览 904

selenium 调用chrome打开某些网站时0时、页面空白

selenium 调用chrome打开某些网站时,地址栏能正常显示地址,但是页面上是空白、没有内容、并提示“chrome正受到自动测试软件控制”。
补充说明:
1、该网站地址直接复制到手动打开的chrome中,页面能正常显示数据
2、通过selenium 调用chrome打开其他网站,可正常显示
以上两点说明、不是驱动、兼容等问题。
页面截图:

img

代码:(options的各个参数都各自禁用过、没能解决问题)

rl = 'https://cdcz.chengdu.gov.cn/cdsczj/c116710/jgsz.shtml'
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-javascript')
    options.add_argument('disable-infobars')
    #options.add_argument('--headless')
    #浏览器打开后不自动关闭
    options.add_experimental_option('detach',True)
    #关闭自动控制blink特征
    options.add_argument('-disable-blink-features=AutomationControlled')
    chrome = webdriver.Chrome(options)
    chrome.get(url)

  • 写回答

5条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-02-07 16:51
    关注

    参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。

    该问题出现的原因可能是因为目标网站在检测到自动化测试工具(如Selenium)时采取了反爬虫或反自动化测试的策略,导致页面内容无法正常加载。尽管您已经尝试禁用了一些可能导致问题的参数,但某些网站可能会使用更复杂的检测机制。

    您可以尝试以下解决方案:

    1. 伪装成普通用户:通过设置User-Agent,使其看起来像是普通浏览器访问而非自动化测试工具。

      from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
      
      dcap = dict(DesiredCapabilities.CHROME)
      dcap["goog:loggingPrefs"] = { "browser": "ALL" }
      dcap['acceptInsecureCerts'] = True
      dcap['pageLoadStrategy'] = 'normal'
      options.add_argument(f'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36')
      
    2. 启用浏览器扩展功能模拟人工操作:比如滚动页面、点击等,使行为更接近真实用户。

    3. 启动无痕模式:有的网站会基于cookies或者localStorage进行检测,无痕模式下这些数据不会被保存,可能会绕过部分检测。

      options.add_argument('--incognito')
      
    4. 禁用Chrome WebDriver属性:有些网站会检查navigator.webdriver属性来判断是否是自动化工具,可以尝试禁用它。

      # 需要注意的是这个方法可能随着Chrome和webdriver版本更新而失效
      chrome.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
          "source": """
              Object.defineProperty(navigator, 'webdriver', {
                  get: () => undefined
              })
          """
      })
      

    请根据实际情况尝试上述方案,如果问题依旧存在,可能需要更深入地研究目标网站的具体反爬策略并针对性地制定应对措施。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月7日