Python pyppeteer 与 Selenium Firefox 隧道代理:浏览器自动化方案
pyppeteer 和 Selenium Firefox 两种浏览器自动化框架对接亿牛云爬虫代理。
亿牛云技术团队2026年5月9日1 分钟阅读
pyppeteer
pyppeteer 是 Puppeteer 的 Python 移植版,通过 --proxy-server 参数和 page.authenticate 处理代理。
import asyncio, os
from pyppeteer import launch
host = os.getenv("PROXY_HOST", "t.16yun.cn")
port = os.getenv("PROXY_PORT", "31111")
user = os.getenv("PROXY_USERNAME", "user")
pwd = os.getenv("PROXY_PASSWORD", "password")
async def main():
browser = await launch({
"headless": True,
"args": [
f"--proxy-server=http://{host}:{port}",
"--no-sandbox",
"--ignore-certificate-errors",
],
"ignoreHTTPSErrors": True,
})
page = await browser.newPage()
if user and pwd:
await page.authenticate({"username": user, "password": pwd})
await page.goto("https://httpbin.org/ip", {"waitUntil": "domcontentloaded", "timeout": 30000})
html = await page.content()
print(html[:500])
await browser.close()
asyncio.run(main())
Selenium Firefox
Selenium Firefox 通过 set_preference 配置代理:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager
host = os.getenv("PROXY_HOST", "t.16yun.cn")
port = os.getenv("PROXY_PORT", "31111")
user = os.getenv("PROXY_USERNAME", "user")
pwd = os.getenv("PROXY_PASSWORD", "password")
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", host)
profile.set_preference("network.proxy.http_port", int(port))
profile.set_preference("network.proxy.ssl", host)
profile.set_preference("network.proxy.ssl_port", int(port))
profile.set_preference("network.proxy.socks", host)
profile.set_preference("network.proxy.socks_port", int(port))
options = Options()
options.profile = profile
options.add_argument("--headless")
driver = webdriver.Firefox(
service=Service(executable_path=GeckoDriverManager().install()),
options=options,
)
driver.get("https://httpbin.org/ip")
print(driver.page_source[:500])
driver.quit()
浏览器工具代理对比
| 特性 | pyppeteer | Selenium Firefox | Selenium Chrome(前文) |
|---|---|---|---|
| 代理配置 | --proxy-server 参数 | network.proxy.* 偏好 | Chrome 扩展注入 |
| 认证方式 | page.authenticate() | Firefox 不支持 HTTP 代理认证 | Chrome 扩展 |
| 支持 HTTPS Tunnel | ❌ 浏览器限制 | ❌ | ❌ |
| 适用场景 | Chromium 自动化 | Firefox Gecko 引擎测试 | Chrome 自动化 |
需要企业代理方案?
我们可根据目标站点、并发规模与稳定性目标提供定制方案。