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

FedEx检测Selenium Chrome自动化登录返回403的绕过方案咨询

绕过FedEx Selenium自动化检测的有效方案

当前被拦截不是单一特征识别导致的,FedEx目前部署了多层反爬规则,仅替换chromedriver的cdc_字段、关闭基础webdriver标识无法绕过,可按以下顺序调整方案:

  • 首先替换旧版无头模式:代码里用的--headless是旧版无头参数,存在大量可被识别的特征,直接替换为--headless=new,该模式是Chrome 112+版本推出的全功能无头模式,指纹和正常打开的Chrome完全一致,旧无头模式即使修改user-agent也会在插件列表、屏幕参数、API返回值等位置暴露特征。
  • 提前注入指纹覆盖脚本:不要等页面加载完成后再执行反检测脚本,要在初始化driver后、访问任何站点前通过CDP命令注入脚本,覆盖所有已知的自动化特征:
# 初始化driver后立刻执行
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    Object.defineProperty(navigator, 'webdriver', {get: () => undefined})
    window.chrome = {
      runtime: {},
      loadTimes: () => {},
      csi: () => {},
      app: {}
    }
    const originQuery = window.navigator.permissions.query
    window.navigator.permissions.query = params => (
      params.name === 'notifications' 
        ? Promise.resolve({state: Notification.permission})
        : originQuery(params)
    )
    Object.defineProperty(navigator, 'plugins', {get: () => [1,2,3,4,5]})
    Object.defineProperty(navigator, 'languages', {get: () => ['en-US','en']})
    Object.defineProperty(navigator, 'platform', {get: () => 'Win32'})
  """
})
  • 直接替换原生Selenium为undetected-chromedriver:手动补全所有特征配置成本很高,这个库已经默认抹除了所有已知的Chrome自动化检测特征,不需要手动加excludeSwitches、disable-blink-features这类参数,改造代码成本极低:
# 先执行 pip install undetected-chromedriver
import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
import time, random

options = uc.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--window-size=1280,1000")
# 若需要无头模式使用下面的参数
# options.add_argument('--headless=new')
driver = uc.Chrome(options=options, version_main=102) # version_main匹配本地Chrome大版本号
  • 模拟真实用户访问轨迹:不要直接访问登录页,先打开FedEx首页,随机等待3-6秒后再跳转登录页;输入账号密码时不要一次性直接send_keys,每个字符间隔0.1-0.3秒的随机延迟,输入完账号停1-2秒再输密码,输完密码停1-3秒再点击登录,过快的操作节奏也是反爬规则的核心判定项。
  • 如果上述调整后仍被拦截,可以直接加载本地日常使用的Chrome用户配置目录启动,直接复用手动登录后的有效Cookie,跳过登录步骤:
# 注意:启动前必须关闭所有正在运行的Chrome进程,否则配置文件会被锁定导致启动失败
options.add_argument(r"--user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data") # 路径替换为本地的Chrome用户数据路径
options.add_argument("--profile-directory=Default") # 对应日常使用的Chrome配置文件名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:45:58