使用Python的Selenium库注册Twitch报错,已设User-Agent仍无效
解决Twitch注册时Selenium的反爬报错问题
修改后的完整代码
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager options = Options() # 设置User-Agent options.add_argument("User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36") # 禁用自动化检测标识 options.add_argument("--disable-blink-features=AutomationControlled") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) # 模拟真实浏览器的启动参数 options.add_argument("--start-maximized") options.add_argument("--disable-extensions") options.add_argument("--disable-plugins-discovery") # 可选:禁用图片加载加快速度 # options.add_argument("--blink-settings=imagesEnabled=false") service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=options) # 额外移除navigator.webdriver标识,彻底规避检测 driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})") # 接下来就可以访问Twitch注册页面了 # driver.get("https://www.twitch.tv/signup")
关键修改原因
- 屏蔽自动化检测:Twitch会通过
navigator.webdriver这类属性识别Selenium,加那几个参数能直接关掉浏览器的自动化标识,让Twitch认不出来你用的是爬虫工具。 - 手动修改浏览器属性:光靠参数还不够,用JS强制把
navigator.webdriver改成undefined,彻底绕过前端的检测逻辑。 - 模拟真实用户操作环境:禁用扩展、插件检测,启动就最大化窗口,让浏览器的行为和普通用户打开Chrome时完全一样,减少被拦截的概率。
额外提醒
- 确保Chrome浏览器和ChromeDriver版本完全匹配,虽然
webdriver-manager会自动适配,但如果还是出问题,手动下载对应版本的ChromeDriver更稳妥。 - 操作别太急,模拟真实用户的节奏,比如输入信息后停几秒再点下一步,别连续快速操作触发频率限制。
- 如果还是遇到验证码,可能得配合打码服务或者换代理IP,分散请求来源。
内容的提问来源于stack exchange,提问作者aouty22
相关产品推荐
相关产品推荐

