自动化框架 集成

如何在 SELENIUM 中使用 PROXY POLAND

通过专用 4G/5G 手机代理路由 Selenium WebDriver 的 Python 和 Node.js 代码示例。

审核:
概述

为何选择 SELENIUM + PROXY POLAND

Selenium 是使用最广泛的浏览器自动化框架。通过 Proxy Poland 的专用 4G/5G 手机代理路由 Selenium,您可以使用真实手机 IP 抓取数据、运行测试和自动化任务,从而绕过反机器人检测。

Selenium 配置应使用生产环境相同的代理协议、浏览器配置、目标网站和账号流程来测试。扩展前请检查可见 IP、DNS 路由、ASN、会话保持、轮换行为、登录状态、HTTP、SOCKS5、OpenVPN、VLESS 和控制台状态是否一致。

这页是中文集成指南,说明如何把移动代理接入浏览器、脚本、反检测工具或自动化框架。重点检查代理主机、端口、协议、认证、DNS 路由、出口 IP、会话保持和轮换行为是否与工具设置一致。

完成配置后不要直接扩大任务量。先用小流量验证目标网站响应、账号登录状态、浏览器指纹、地理位置、运营商网络、超时、重试和错误码,再决定是否进入生产工作流。

分步指南

设置说明

  1. 01

    安装依赖

    安装 Selenium 和您浏览器的 WebDriver:

    pip install selenium webdriver-manager
    # or for Node.js:
    npm install selenium-webdriver
  2. 02

    获取代理凭据

    在 proxypoland.com 注册并获取您的代理 IP、端口、用户名和密码。

  3. 03

    配置带代理的 Chrome(Python)

    使用 SOCKS5 代理设置 Chrome WebDriver:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    PROXY = "socks5://username:password@proxy-ip:port"
    
    options = Options()
    options.add_argument(f'--proxy-server={PROXY}')
    
    driver = webdriver.Chrome(options=options)
    driver.get('https://whatismyipaddress.com')
    print(driver.title)
    driver.quit()
  4. 04

    配置 HTTP 代理(Python)

    替代的 HTTP 代理配置:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    PROXY = "http://username:password@proxy-ip:port"
    
    options = Options()
    options.add_argument(f'--proxy-server={PROXY}')
    
    driver = webdriver.Chrome(options=options)
    driver.get('https://httpbin.org/ip')
    print(driver.page_source)
    driver.quit()
  5. 05

    使用 Node.js 配置

    Node.js 中的 Selenium WebDriver 带代理:

    const { Builder } = require('selenium-webdriver');
    const chrome = require('selenium-webdriver/chrome');
    
    const options = new chrome.Options();
    options.addArguments(
      '--proxy-server=socks5://username:password@proxy-ip:port'
    );
    
    const driver = new Builder()
      .forBrowser('chrome')
      .setChromeOptions(options)
      .build();
    
    await driver.get('https://httpbin.org/ip');
    console.log(await driver.getTitle());
    await driver.quit();
  6. 06

    添加 IP 轮换

    在爬取会话之间轮换 IP:

    import requests
    
    def rotate_ip():
        """Call the mobile proxy rotation API"""
        response = requests.get(
            'https://your-proxy-ip:port/rotate',
            auth=('username', 'password')
        )
        return response.json()
    
    # Rotate before each session
    rotate_ip()
    driver = webdriver.Chrome(options=options)
    # ... scrape with new IP
  7. 07

    验证您的 IP

    检查 Selenium 是否使用代理 IP:

    driver.get('https://httpbin.org/ip')
    ip_text = driver.find_element('tag name', 'pre').text
    print(f'Current IP: {ip_text}')
    # Should show a Polish mobile IP
专家建议

专业提示

使用 SOCKS5 进行包括 DNS 查询在内的完整流量路由

添加 --headless 标志用于生产爬取

对有速率限制的网站实施指数退避

在页面加载之间轮换 IP 进行大规模爬取

对具有高级机器人检测的网站使用 undetected-chromedriver

常见用例

适用于以下场景

大规模网络爬取价格监控SEO 排名追踪广告核查使用特定地理 IP 进行 QA 测试

FAQ

01哪种代理协议最适合 Selenium?+

SOCKS5 兼容性最强,可防止 DNS 泄露。HTTP 适用于基本爬取,但 SOCKS5 路由所有流量(包括 DNS)通过代理。

02我可以将 Selenium 与 undetected-chromedriver 和这些代理一起使用吗?+

可以。undetected-chromedriver + Proxy Poland 的手机代理是爬取受保护网站的最佳组合。手机 IP 绕过基于 IP 的检测,而 undetected-chromedriver 处理浏览器指纹检查。

03如何在 Selenium 中处理代理认证?+

对于 Chrome,在代理 URL 中包含凭据:socks5://用户:密码@主机:端口。对于 Firefox,使用代理认证扩展或透明处理认证的 selenium-wire。

04我可以在无头模式下运行 Selenium 使用这些代理吗?+

可以。向 Chrome 选项添加 --headless=new。代理在无头模式下工作方式完全相同。对于检测无头浏览器的网站,使用 undetected-chromedriver。

05使用手机代理与数据中心代理的爬取速度如何?+

我们 4G/5G 连接上 30-100 Mb/s 的吞吐量。虽然比原始数据中心速度慢,但优势在于您不会被封锁。通过手机代理的一次成功请求比通过数据中心 IP 的 100 次被封锁请求更有价值。

06设置Proxy Poland代理的WebDriver capabilities配置是什么?+

使用Proxy capability:from selenium.webdriver.common.proxy import Proxy, ProxyType; p = Proxy({'proxyType': ProxyType.MANUAL, 'socksProxy': 'host:port', 'socksVersion': 5, 'socksUsername': 'user', 'socksPassword': 'pass'}); options.Proxy = p。对于HTTP:p = Proxy({'proxyType': ProxyType.MANUAL, 'httpProxy': 'http://user:pass@host:port', 'sslProxy': 'http://user:pass@host:port'})。

07如何向chromedriver传递带认证的--proxy-server标志?+

options.add_argument(f'--proxy-server=http://{host}:{port}')或socks5://。该标志不接受user:pass——Chromium会剥离凭据。解决方法:(1) 使用Chrome扩展注入代理认证(programmatically创建.crx,挂钩到proxy.onAuthRequired);(2) 使用proxy-chain包在本地运行一个匿名转发代理,将--proxy-server指向127.0.0.1:local_port;(3) 改用Selenium的Proxy capability来传递认证的SOCKS5。

08undetected-chromedriver是否接受Proxy Poland的带认证SOCKS5?+

是的——undetected-chromedriver继承了Chrome的--proxy-server语义,因此无认证的SOCKS5通过options.add_argument有效。对于认证的SOCKS5,使用proxy-chain:chain = await proxyChain.anonymizeProxy('socks5://user:pass@host:port'),然后options.add_argument(f'--proxy-server={chain}')。proxy-chain在本地运行匿名中间代理,处理认证握手。

09如何在Selenium中将浏览器时区/locale设置为匹配Polish carrier IP?+

通过execute_cdp_cmd使用Chrome DevTools Protocol:driver.execute_cdp_cmd('Emulation.setTimezoneOverride', {'timezoneId': 'Europe/Warsaw'});driver.execute_cdp_cmd('Emulation.setLocaleOverride', {'locale': 'pl-PL'});driver.execute_cdp_cmd('Emulation.setGeolocationOverride', {'latitude': 52.2297, 'longitude': 21.0122, 'accuracy': 100})。这些CDP命令必须在每个新会话后调用。

10我可以运行多个Selenium Grid,每个使用不同的Proxy Poland代理吗?+

可以——Selenium Grid 4。通过--selenium-manager-config或driver特定参数配置每个节点。在会话创建时传递capabilities——在请求的capabilities中包含proxy对象。每个Grid节点可以运行一个带自己Polish代理配置的ChromeDriver。对于大规模设置,使用Kubernetes托管网格,每个Pod配置不同的Polish代理。

11如何在Selenium中不丢失driver的情况下实现mid-session IP轮换?+

不能在不重启Chromium的情况下更改运行中的代理——Chromium仅在启动时读取--proxy-server。解决方法:(1) 调用rotation API,退出driver,用新代理重新启动,从DB恢复会话状态(cookies、localStorage);(2) 使用proxy-chain,动态更改上游目标而无需重启browser;(3) 对于大多数爬取工作负载,只在driver实例之间轮换即可——以批次处理,每批次后退出并重启。

12Selenium 4与Selenium 3配合Proxy Poland使用——有兼容性差异吗?+

Selenium 4是推荐的基准。Proxy capability语法相同,但Selenium 4添加了原生CDP支持(driver.execute_cdp_cmd),这对于时区/locale覆盖和高级指纹对齐至关重要。Selenium 3需要安装额外的CDP库。如果您在Selenium 3上,升级到4以获得原生CDP支持,这对于与Polish carrier IP正确对齐浏览器指纹至关重要。

立即试用免费 1 小时

在 2 分钟内使用专用 4G/5G 手机代理设置 Selenium。无需信用卡。试用期间完整代理访问。

无承诺 · 随时取消 · 2 分钟内设置