为何选择 SELENIUM + PROXY POLAND
Selenium 是使用最广泛的浏览器自动化框架。通过 Proxy Poland 的专用 4G/5G 手机代理路由 Selenium,您可以使用真实手机 IP 抓取数据、运行测试和自动化任务,从而绕过反机器人检测。
Selenium 配置应使用生产环境相同的代理协议、浏览器配置、目标网站和账号流程来测试。扩展前请检查可见 IP、DNS 路由、ASN、会话保持、轮换行为、登录状态、HTTP、SOCKS5、OpenVPN、VLESS 和控制台状态是否一致。
这页是中文集成指南,说明如何把移动代理接入浏览器、脚本、反检测工具或自动化框架。重点检查代理主机、端口、协议、认证、DNS 路由、出口 IP、会话保持和轮换行为是否与工具设置一致。
完成配置后不要直接扩大任务量。先用小流量验证目标网站响应、账号登录状态、浏览器指纹、地理位置、运营商网络、超时、重试和错误码,再决定是否进入生产工作流。
设置说明
- 01
安装依赖
安装 Selenium 和您浏览器的 WebDriver:
pip install selenium webdriver-manager # or for Node.js: npm install selenium-webdriver
- 02
获取代理凭据
在 proxypoland.com 注册并获取您的代理 IP、端口、用户名和密码。
- 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() - 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() - 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(); - 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 - 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
适用于以下场景
FAQ
哪种代理协议最适合 Selenium?+
SOCKS5 兼容性最强,可防止 DNS 泄露。HTTP 适用于基本爬取,但 SOCKS5 路由所有流量(包括 DNS)通过代理。
我可以将 Selenium 与 undetected-chromedriver 和这些代理一起使用吗?+
可以。undetected-chromedriver + Proxy Poland 的手机代理是爬取受保护网站的最佳组合。手机 IP 绕过基于 IP 的检测,而 undetected-chromedriver 处理浏览器指纹检查。
如何在 Selenium 中处理代理认证?+
对于 Chrome,在代理 URL 中包含凭据:socks5://用户:密码@主机:端口。对于 Firefox,使用代理认证扩展或透明处理认证的 selenium-wire。
我可以在无头模式下运行 Selenium 使用这些代理吗?+
可以。向 Chrome 选项添加 --headless=new。代理在无头模式下工作方式完全相同。对于检测无头浏览器的网站,使用 undetected-chromedriver。
使用手机代理与数据中心代理的爬取速度如何?+
我们 4G/5G 连接上 30-100 Mb/s 的吞吐量。虽然比原始数据中心速度慢,但优势在于您不会被封锁。通过手机代理的一次成功请求比通过数据中心 IP 的 100 次被封锁请求更有价值。
设置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'})。
如何向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。
undetected-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在本地运行匿名中间代理,处理认证握手。
如何在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命令必须在每个新会话后调用。
我可以运行多个Selenium Grid,每个使用不同的Proxy Poland代理吗?+
可以——Selenium Grid 4。通过--selenium-manager-config或driver特定参数配置每个节点。在会话创建时传递capabilities——在请求的capabilities中包含proxy对象。每个Grid节点可以运行一个带自己Polish代理配置的ChromeDriver。对于大规模设置,使用Kubernetes托管网格,每个Pod配置不同的Polish代理。
如何在Selenium中不丢失driver的情况下实现mid-session IP轮换?+
不能在不重启Chromium的情况下更改运行中的代理——Chromium仅在启动时读取--proxy-server。解决方法:(1) 调用rotation API,退出driver,用新代理重新启动,从DB恢复会话状态(cookies、localStorage);(2) 使用proxy-chain,动态更改上游目标而无需重启browser;(3) 对于大多数爬取工作负载,只在driver实例之间轮换即可——以批次处理,每批次后退出并重启。
Selenium 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正确对齐浏览器指纹至关重要。