Selenium Chromedriver访问URL出现空白页及429错误求助
解决Selenium访问Blue Nile触发429错误的方案
单次请求就出现429状态码+空白页面,说明网站反爬机制已识别出你的浏览器是自动化工具,基础反检测选项不足以规避识别。以下是针对性解决步骤:
1. 确保Chrome与ChromeDriver版本严格匹配
ChromeDriver版本必须和本地安装的Chrome浏览器大版本完全一致(比如Chrome 125对应ChromeDriver 125.x.x.x),版本不匹配会直接暴露自动化痕迹。
2. 补充模拟真实浏览器的参数
在ChromeOptions中添加以下参数,进一步消除自动化特征:
# 设置真实User-Agent,可在浏览器控制台输入navigator.userAgent获取当前Chrome的UA options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36") # 禁用沙箱模式(Linux必加,Windows可选) options.add_argument("--no-sandbox") # 禁用开发者共享内存限制 options.add_argument("--disable-dev-shm-usage") # 禁用默认扩展 options.add_argument("--disable-extensions") # 禁用弹窗拦截(模拟正常用户) options.add_argument("--disable-popup-blocking")
3. 注入StealthJS强化反检测
StealthJS可覆盖Selenium的多个自动化特征,操作如下:
- 下载
stealth.min.js文件,放在代码同目录下 - 初始化driver后执行注入脚本:
driver.execute_script(open("stealth.min.js").read())
4. 模拟真实用户访问路径
不要直接请求搜索页,先访问官网首页,等待几秒后再跳转,模拟正常用户操作:
driver.get("https://www.bluenile.com/") # 可改用WebDriverWait显式等待元素加载,替代time.sleep time.sleep(3) driver.get("https://www.bluenile.com/diamond-search")
5. 改用Selenium 4推荐的Service类初始化driver
旧版executable_path参数已弃用,改用Service类可避免兼容性问题:
from selenium.webdriver.chrome.service import Service service = Service(r"C:\Users\pople\OneDrive\Desktop\chromedriver.exe") driver = webdriver.Chrome(service=service, options=options)
修改后的完整代码示例
from selenium import webdriver from selenium.webdriver.chrome.service import Service import time options = webdriver.ChromeOptions() options.add_argument("start-maximized") # 抑制日志 options.add_experimental_option('excludeSwitches', ['enable-logging']) # 隐藏自动化提示 options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_argument("disable-blink-features=AutomationControlled") options.add_experimental_option('useAutomationExtension', False) # 新增模拟真实浏览器参数 options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36") options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--disable-extensions") service = Service(r"C:\Users\pople\OneDrive\Desktop\chromedriver.exe") driver = webdriver.Chrome(service=service, options=options) # 注入StealthJS driver.execute_script(open("stealth.min.js").read()) # 模拟真实访问路径 driver.get("https://www.bluenile.com/") time.sleep(3) driver.get("https://www.bluenile.com/diamond-search")
额外排查点
- 检查是否使用代理/VPN,若IP已被网站拉黑,更换IP后重试
- 开启无痕模式访问,添加
options.add_argument("--incognito")
内容的提问来源于stack exchange,提问作者boioboi
相关产品推荐
相关产品推荐

