赢取 1TB 住宅流量、 iPhone 18 Pro Max 及另外 + 33 份奖品充值 $50 即可获 = 1 张抽奖券立即参与
企业

如何为 Selenium 设置住宅代理

您编写了一个脚本,需要一个可靠的 Selenium 代理。它在您的本地机器上完美执行。您将代码推送到生产环境。目标平台立即拒绝连接。

这会破坏您的整个工作流程。大多数操作者通过标准数据中心托管路由自动化浏览器。安全算法会持续扫描传入流量,并立即识别这些无特征的网络签名。它们会断开连接。您的自动化在提取单个数据点之前就会停滞。

但您可以在网络层修复这个问题。您必须通过集成高信任度住宅 IP 基础设施来保护您的网络足迹。使用强大的 Selenium 代理网络,通过真实的互联网服务提供商(ISP)路由您的 webdriver。这会强制目标服务器将您的脚本视为真实的人类访客。您的流量会融入其中。

本指南详细说明了如何为网页抓取构建 Selenium 住宅代理代码。我们将为 生产管道实现企业级性能。您将学习如何调整网络位置并克服区域限制。这种方法有助于保持稳定的代理成功率,而不会触发自动化安全过滤器。

TL;DR:大规模保护 Selenium 代理管道

您的抓取操作停滞不前,因为您当前的 webdriver 设置泄露了您的真实意图。以下是使用即用型代码参数解决此问题的方法:

  • 数据中心问题: 算法始终监控您的流量速度和网络类型。它们会立即拒绝来自标准服务器托管的请求。通过廉价数据中心节点推送无头 Chrome 会导致脚本立即失败。

  • 网络解决方案: 保护您的足迹。将您的基础设施转换为 1 亿以上的住宅 IP 池,使目标平台将您的自动化请求完全视为真实的人类访客。

  • 指纹隔离: 更改 IP 地址只能解决一半的问题。您必须去除默认的 Selenium 自动化标志。然后同步您的内部浏览器坐标以匹配网络的物理位置,以保持稳定的会话连接。

  • 飞行前审计: 切勿盲目启动您的 webdriver。通过简单的终端 cURL 命令测试您的网络凭据,并在执行昂贵的浏览器实例之前使用 欺诈分数检查器 评估您的风险。

构建稳定的 Selenium 代理自动化管道

不要再将代理视为事后考虑。您的代码库需要强化的基础设施。当您从每分钟十个请求扩展到一万个时,基本的代理设置会崩溃。连接中断会成倍增加。数据流会损坏。您需要一个原生处理高负载的 Selenium 代理架构。

稳定的管道需要可预测的网络行为。目标服务器会持续监控您的请求速度。如果单个 IP 地址发送过多数据包,平台会切断连接。但您可以分散这个确切的负载。通过数千个不同的节点路由流量会分散您的足迹。这完全防止了速率限制标志。系统在压力下会自我修复。如果一个网络节点掉线,基础设施会立即通过新的活动连接路由您的请求。

  • 处理数百万个并发会话而不会阻塞目标应用程序。

  • 使用 API 控制保持数据提取流活跃,避免突然的连接中断。

  • 运行繁重的工作负载而无需手动重启。代理池会自动替换失效节点以保持会话活跃。

  • 为您的生产环境维护 SLA 支持的正常运行时间。

基础设施选择:将 Selenium 代理与您的任务匹配

不同的任务需要不同的 Selenium 代理。如果您为简单、无保护的网站购买专用移动 IP,您会浪费预算。相反,廉价路由在严格的平台上会立即失败。将您的网络基础设施直接与项目参数匹配,以确保稳定的数据交付。

代理类型

核心优势

最佳用途

计费结构

轮换住宅代理

每次请求自动轮换IP

大规模网页爬取

按量付费(4美元/GB)

静态ISP代理

持续稳定的长期会话

专业账号管理

固定月费(5.29美元起)

共享移动LTE/4G/5G代理

高信任度CGNAT自动轮换

经济高效的测试和稳定浏览

按日或按月(1.7美元/天起)

独享移动LTE/4G/5G代理

独享调制解调器,支持API轮换和操作系统指纹匹配

严格反欺诈和账号养成

按日或按月(3.5美元/天起)

数据中心代理

独享专用IP,超低延迟

低安全性目标的高速爬取

固定月费(1.77美元起)

Google SERP例外:为什么需要移动代理

不要使用轮换住宅代理来爬取Google搜索结果(SERP)。数据量会耗尽你的预算。Google的反机器人系统会立即标记来自标准IP轮换的重复请求。

你必须部署 移动LTE/5G代理 来进行持续的多线程Google爬取。移动运营商采用CGNAT技术。这会将成千上万真实智能手机用户隐藏在一个IP地址后面。Google无法在不断开真实用户连接的情况下封禁这些地址。我们的移动基础设施为你提供无限流量。你可以无限扩展SERP提取,无需为每一GB付费。

协议差异:Selenium代理路由的IPv4与IPv6

你部署了一个爬虫。目标服务器立即断开你的 IPv4 连接。你更换代理,但新的IPv4节点也失败了。然后你通过 IPv6 地址路由同一个Selenium脚本。页面完美加载。

这种协议差异会破坏僵化的自动化管道。传统反机器人数据库会积极地映射和分类较旧的IPv4地址空间。它们监控这些范围。它们严格过滤。但IPv6地址空间仍然广阔且分散。许多企业安全算法对IPv6流量应用完全不同且通常更宽松的过滤参数。

你的基础设施必须支持灵活路由才能应对这些不匹配。依赖静态配置不可避免地导致停机。平台经常封禁整个IPv4子网。但它们会完全开放IPv6端点。原生构建你的架构来处理这种差异。如果IPv4节点失败,你的脚本需要立即切换到IPv6地址。

  • 配置双栈路由以满足不同的协议规则。

  • 通过庞大的IPv6地址空间路由流量,避开旧的传统数据库。

  • 使用自动协议故障转移保持稳定的成功率。

Selenium 代理会话控制与轮换逻辑

Selenium 需要严格的会话规则。你登录、点击并抓取数据。在此过程中突然更换 IP 会立即触发红色警报。目标服务器会当场切断你的访问。因此,你的轮换设置必须与具体的 抓取任务相匹配。

在启动 webdriver 之前,在代理构造函数内定义连接参数。CyberYozh App 使用通用的 IP:PORT:LOGIN:PASS 格式构建连接。HTTP 请求通过端口 5959 路由,SOCKS5 通过端口 9595 路由。

住宅代理路由参数

你的路由参数完全取决于你部署的是动态池还是静态 ISP 节点。

动态 IP 地址代理池允许你通过特定的凭据生成来控制网络身份稳定性。你无需手动构建复杂的定向字符串。 CyberYozh App 仪表板 配备了可视化凭据生成器。

👉 获取轮换住宅代理

CyberYozh App dashboard showing the Generate Credentials button for dynamic residential proxies
Locate your active residential proxy plan in the dashboard and click Generate Credentials.

你选择所需的会话类型,系统会输出用于 webdriver 的精确格式化字符串。用户名中的文本字符串会告诉我们的服务器如何处理你的连接。

  • 随机 IP: 每次请求都会获得一个新的网络节点。我们的工具会在你的登录名中添加 -res-any 标签。当你只需要原始流量而不需要保持 cookie 存活时,使用此配置。

  • 短会话: 系统会锁定单个 IP 地址最长 60 秒。此配置允许超精确的位置选择,可精确到国家、州和城市级别。

  • 长会话(粘性会话): 连接保持粘性最长 24 小时。你无需手动捕获会话令牌。生成器只需在你的登录字符串中添加一个 唯一的 -resfix- 令牌。此配置提供处理账户、完成多页结账和填写长表单所需的持续稳定性。

Residential proxy credentials generator interface in CyberYozh App with geo-targeting and session control options
Select your precise location and session type to instantly generate formatted proxy strings and cURL test snippets for your Selenium script.

静态 IP 地址架构的运作方式不同。你会收到一个在整个租用期内专属于你的专用家庭 IP 地址。网络将此 IP 直接绑定到真实的互联网服务提供商。你无需生成轮换令牌或管理会话前缀。你只需将静态 IP 和凭据插入 webdriver 即可。在需要维护永久数字地址的 专业配置文件管理 和管理严格的 电商配置文件 场景中使用此架构。

👉 获取静态 ISP 代理

👉 阅读关于 住宅代理 的完整指南,了解详细的仪表板工作流程。

移动代理轮换机制

蜂窝网络运行在 CGNAT 技术上。这意味着成千上万的普通用户同时共享一个运营商 IP 地址。这种大规模重叠使移动节点在安全过滤器看来极其真实可信。我们将此基础设施划分为两种不同的设置。你无需为其中任何一种生成复杂的用户名。只需使用我们提供的静态凭据直接连接即可。

自动内部计时器控制共享移动代理端口。系统每 5 到 30 分钟自动轮换一次 IP。你无法在共享计划中强制手动更改。你需要编写脚本代码来处理共享 IP 轮换时突然的连接中断。

👉 获取共享移动代理

但私有专用移动代理端口的工作方式有所不同。您将获得对真实 LTE/4G/5G 调制解调器的独占访问权限。我们会在您的仪表板中提供特定的 API 链接。您只需配置 Python 或 Node.js 代码来访问该 URL。这会触发物理硬件重启。它会按需完全重置您的网络指纹。

👉 部署专用移动代理

专用端口还提供对高级网络工具的访问。您可以激活 被动操作系统指纹 匹配(TCP/IP)。如果您的 Selenium 脚本在 Windows 服务器上运行但模拟 iOS 设备,此功能会将网络签名调整为与模拟的硬件完美匹配。

  • 通过脚本调用 IP 地址更改链接来控制轮换间隔。

  • 将该链接放入反检测浏览器的「IP 更改 URL」字段中以实现自动重置。

  • 在代码中写入 15 秒暂停以等待物理调制解调器重启。

  • 使用我们的 VLESS-Reality (Xray)链接在严格的防火墙环境中保持流量稳定。

👉 查看 CyberYozh API 文档 以处理速率限制并管理您的节点历史记录。

掩盖 Selenium webdriver 和浏览器指纹

通过住宅连接路由流量只能解决一半的问题。目标平台不仅验证您的 IP 地址。它们会执行激进的 JavaScript 挑战来检查您浏览器的内部硬件配置文件。如果您的 Selenium 代理注册在伦敦,但您的 Selenium webdriver 广播的系统时区在东京,算法会立即捕捉到不匹配。平台会终止您的会话。

标准自动化工具会留下明显的技术痕迹。开箱即用的 Chrome 会广播 navigator.webdriver = true 信号。安全过滤器读取此信号后会在页面渲染之前阻止您的访问。您必须完全去除这些默认的自动化标记。

在服务器上运行 Chrome 意味着以无头模式运行。您没有图形界面。但传统的无头架构会广播一个巨大的危险信号。它会直接在您的 user-agent 字符串中写入「HeadlessChrome」。 反欺诈系统 会立即阻止这一点,即使您的住宅代理是完美的。

Google 发布了新的无头模式来解决这个问题。您必须强制 Selenium 使用它。将 --headless=new 添加到您的选项中。然后明确覆盖 user-agent 字符串,使其看起来像标准桌面浏览器。此外,您可以禁用图像和 CSS 以大幅减少带宽消耗。

bash
options = Options()

# Force the new headless architecture
options.add_argument("--headless=new")

# Overwrite the default headless user-agent
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36")

# Save bandwidth by blocking images and CSS
prefs = {"profile.managed_default_content_settings.images": 2, "profile.managed_default_content_settings.stylesheet": 2}
options.add_experimental_option("prefs", prefs)

但移除 webdriver 标志只是基线。您必须将浏览器的坐标数据和语言参数直接与代理节点的物理位置同步。以下是如何在 Chrome DevTools Protocol (CDP)中使用 Python Selenium 脚本执行基本身份掩盖和时区同步:

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

options = Options()

# Strip the default automation markers
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

driver = webdriver.Chrome(options=options)

# Override the webdriver property via CDP
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})

# Force the timezone to match a specific proxy IP (e.g., London)
driver.execute_cdp_cmd("Emulation.setTimezoneOverride", {
    "timezoneId": "Europe/London"
})

# Mask WebRTC to prevent local IP leaks
driver.execute_cdp_cmd("Emulation.setWebRTCIPHandlingPolicy", {
    "policy": "disable_non_proxied_udp"
})

Selenium 脚本的飞行前网络审计

切勿通过未经测试的节点发送自动化流量。盲目信任您的代理池会导致账户被封禁。您必须在脚本执行第一个操作之前审计您的网络参数。将实时验证直接整合到您的部署序列中。此步骤允许您准确查看目标平台如何看待您的连接。

正确的审计涵盖三个步骤。您测试可达性、检查身份验证并评估风险评分。

测试网络可达性

不要急于启动你的抓取脚本。首先,检查你的节点是否能够访问目标URL。你可以运行开源的 ipregion.sh 脚本来检查这一点。它会执行快速、轻量级的网络脉冲检测。该脚本会验证路由路径,并确定特定平台是否允许从你当前的IPv4或IPv6地址进行访客或区域访问。

bash
bash <(wget -qO- https://ipregion.vrnt.xyz)

通过cURL验证Selenium代理凭证

在启动Chrome之前,你必须验证你的 Selenium代理 网关是否接受你的凭证。一个简单的命令行检查可以节省数小时调试浏览器超时的时间。你可以使用基本的cURL身份验证命令来测试你的确切路由字符串。

bash
curl -v -x http://LOGIN-resfix-us-nnid-TOKEN:PASSWORD@IP:5959 https://ipv4.icanhazip.com

如果代理层拒绝你的访问,终端会返回HTTP 407代理身份验证必需错误。如果它返回一个干净的IP地址,你就可以将这些凭证集成到你的Selenium代码中了。

评估风险级别

物理连接并不能确保账户的持久性。平台会持续跟踪自动化活动。将CyberYozh App检查器API集成到你的启动序列中,以实时检查你的IP在主要数据库中的状态。按0到100的比例对你的连接进行评分。一旦节点达到75或更高,立即暂停你的脚本。

配置Selenium代理身份验证

将安全代理集成到你的webdriver中需要特定的凭证处理。原生Selenium ChromeOptions在处理代理身份验证字符串时存在困难。它只接受原始的主机和端口数据。如果你直接将用户名和密码传递到标准代理参数中,浏览器会忽略它们。

Python集成(Chrome DevTools协议)

历史上,Python开发者依赖`selenium-wire`来注入代理凭证。然而,`selenium-wire`现在已经是一个归档项目,并且在现代Python环境中会触发关键的导入错误(例如 ImportError: cannot import name 'WeakNamespace' from 'blinker')。此外,注入本地中间人服务器会增加10%到15%的性能开销。

2026年最干净、最快的方法是通过 Fetch.continueWithAuth 事件使用原生Chrome DevTools协议(CDP)。这种方法可以无缝传递你的 CyberYozh App代理 凭证,而无需安装任何第三方拦截器。

以下是经过身份验证的Selenium代理连接的架构实现:

bash
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import threading
import json

class ChromeWithAuthProxy:
    """Selenium 4 Chrome driver that handles authenticated HTTP proxies via CDP."""
    def __init__(self, proxy_host, proxy_port, proxy_user, proxy_pass):
        self.proxy_host = proxy_host
        self.proxy_port = proxy_port
        self.proxy_user = proxy_user
        self.proxy_pass = proxy_pass
        self._cmd_id = 0
        self._lock = threading.Lock()

    def _cdp_send(self, method, params=None):
        with self._lock:
            self._cmd_id += 1
            msg = {"id": self._cmd_id, "method": method}
            if params:
                msg["params"] = params
            # Note: A full implementation requires establishing a WebSocket connection
            # to the CDP debugger URL (page_target["webSocketDebuggerUrl"]) 
            # and sending the JSON message.
            # Example logic for handling auth:
            # self._cdp_send("Fetch.continueWithAuth", {
            #     "requestId": requestId,
            #     "authChallengeResponse": {
            #         "response": "ProvideCredentials",
            #         "username": self.proxy_user,
            #         "password": self.proxy_pass
            #     }
            # })

# Usage setup
options = Options()
options.add_argument("--proxy-server=http://IP:5959")
# Initialize WebDriver and attach CDP listeners...
driver = webdriver.Chrome(options=options)
driver.get("https://ipv4.icanhazip.com")
print(driver.page_source)
driver.quit()

这种基于CDP的方法使Selenium更接近Puppeteer的架构,提供强大且极快的身份验证请求。

Node.js和Java集成(本地转发)

现代Node.js管道依赖于使用类似 proxy-chain这样的库进行本地代理转发。你的脚本会生成一个本地的、未经身份验证的代理服务器,该服务器会静默地将流量转发到你的安全 CyberYozh App代理。你可以将这个本地URL直接传递到标准ChromeDriver选项中。

获取此Node.js设置用于你的生产环境:

bash
const { Builder } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const proxyChain = require('proxy-chain'); // npm install proxy-chain

// CyberYozh App Credentials
const proxyUrl = 'http://LOGIN-resfix-us-nnid-TOKEN:PASSWORD@IP:5959';

(async function run() {
    // Generate a local unauthenticated endpoint mapping to your secure proxy
    const localProxyUrl = await proxyChain.anonymizeProxy(proxyUrl);
    const options = new chrome.Options();
    options.addArguments(`--proxy-server=${localProxyUrl}`);
    options.addArguments('--ignore-certificate-errors');
    
    let driver = await new Builder().forBrowser('chrome').setChromeOptions(options).build();
    
    try {
        await driver.get('https://ipv4.icanhazip.com');
        let body = await driver.findElement({tagName: 'body'}).getText();
        console.log("Active IP:", body);
    } finally {
        await driver.quit();
        // Close the local forwarding server to free up system ports
        await proxyChain.closeAnonymizedProxy(localProxyUrl, true);
    }
})();

Java适配: 在你的Java应用程序中部署一个本地路由守护进程,如 BrowserMob Proxy 或 LittleProxy。你使用CyberYozh App凭证配置该守护进程。然后指示你的Selenium ChromeOptions通过 localhost:YOUR_PORT路由流量。

这两种方法都能确保你的流量通过指定的协议干净地路由,而不会触发身份验证弹窗或安全警报。

专业账号管理与自动化的平台工具

您的基础设施必须与现有代码库无缝对接。您需要一个集账号稳定性和数据提取于一体的全方位生态系统。CyberYozh App 提供单一统一的端点架构。我们将您的网络层、通信渠道和支付网关整合到一个安全环境中。

抓取脚本 经常遇到 手机验证 问题。我们的平台原生解决了这一摩擦。您可以部署 CyberYozh App 短信接收 API 来浏览可用国家、订购手机号码,并直接在代码中获取 短信验证 码。

扩展 Selenium 住宅代理管道并管理成本

重型自动化快速消耗带宽。我们专门构建了这个网络来处理重型自动化的大规模可扩展性。它在原始数据吞吐量与严格的财务控制之间取得平衡。

  • 以每 GB 4 美元的 定价控制成本。

  • 未使用的流量自动结转。流量自动转入下一个计费月。

  • 按需付费。使用 3 GB 最低套餐测试您的管道。

  • 为您的定制设置要求 99.9%+ 的正常运行时间 SLA。

保护您的 Selenium 抓取基础设施

通过标准数据中心服务器运行 Selenium 会导致可预见的失败。目标平台会立即标记这种无机流量。

您需要专业的网络层来安全地扩展您的操作。通过符合道德规范的住宅 IP 基础设施路由您的自动化 webdriver,可以完全消除这种技术摩擦。它在硬件层面保护您的网络足迹。

👉 检查您的 IP 欺诈分数 - 以目标服务器看到的方式查看您的连接。

👉 浏览代理目录 - 部署高信任度移动和 Selenium 住宅代理来保护您的数据提取。

关于 Selenium 住宅代理的常见问题