You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium Chrome无头模式访问网站陷入循环报错该如何解决?

解决方法

你看到的反复输出的内容只是浏览器的控制台提示日志,本身不是程序报错,无限循环的核心原因是目标站点做了无头浏览器检测,识别到Selenium的自动化标识后会反复触发资源加载逻辑,才会不断打印相同日志。
按以下要求修改代码即可解决:

  • 新增--disable-blink-features=AutomationControlled启动参数,隐藏Selenium的自动化控制标识,规避站点的基础反爬检测
  • 手动指定普通Chrome的User-Agent,无头模式默认的UA带有HeadlessChrome标识,极易被站点识别
  • 可选添加--log-level=3参数,屏蔽控制台的INFO级日志,避免无关信息干扰排查
  • 新增页面加载超时限制,避免因站点反爬导致无限等待

修改后的完整代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

web = "https://www.powerplay.com/sportsbook/SOCCER/"
chrome_options = Options()
chrome_options.headless = True
# 反检测核心参数
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option("useAutomationExtension", False)
# 替换为你本地Chrome的UA,也可以直接使用当前最新的桌面Chrome公开UA
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36")
# 屏蔽INFO级日志
chrome_options.add_argument("--log-level=3")
# 解决跨环境资源限制问题,Windows、Linux环境都可添加
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

driver = webdriver.Chrome(options=chrome_options)
# 抹掉浏览器的webdriver标识,进一步规避检测
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": """
        Object.defineProperty(navigator, 'webdriver', {
            get: () => undefined
        })
    """
})
# 设置页面加载超时30秒,超时后自动停止加载
driver.set_page_load_timeout(30)
try:
    driver.get(web)
    # 可添加截图操作验证页面是否加载成功
    driver.save_screenshot("load_result.png")
except Exception as e:
    print("页面加载异常:", e)
finally:
    driver.quit()

如果修改后还是无法正常加载,将Chrome和对应版本的ChromeDriver升级到最新版即可,旧版本无头模式的反检测能力更差,更容易被站点识别。

内容的提问来源于stack exchange,提问作者Ariel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 03:36:07