集成

浏览器自动化

Playwright、Puppeteer 和 Selenium 驱动的是真实浏览器,而真实浏览器无法向 SOCKS5 代理发送密码。请使用带用户名和密码的 HTTP 端口,或使用 IP 白名单。

更新于 2026年10月16日

Playwright#

import { chromium } from "playwright";

const browser = await chromium.launch({
  proxy: {
    server: "http://HOST:PORT",
    username: "USER",
    password: "PASS",
  },
});
const page = await browser.newPage();
await page.goto("https://api.ipify.org");
console.log(await page.textContent("body"));
await browser.close();

每个上下文使用不同代理#

一个浏览器可以运行多个隔离的上下文,每个都有自己的代理、Cookie 和存储。这比每个身份开一个浏览器更省资源。

JavaScript
// One browser, a different proxy for every context
const browser = await chromium.launch();

const a = await browser.newContext({
  proxy: { server: "http://HOST_A:PORT_A", username: "USER", password: "PASS" },
});
const b = await browser.newContext({
  proxy: { server: "http://HOST_B:PORT_B", username: "USER", password: "PASS" },
});

Puppeteer#

Chrome 通过启动参数接收代理地址,通过 page.authenticate 接收凭据。

JavaScript
import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  args: ["--proxy-server=http://HOST:PORT"],
});
const page = await browser.newPage();
await page.authenticate({ username: "USER", password: "PASS" });
await page.goto("https://api.ipify.org");
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();

Selenium#

原生 Selenium 无法把代理密码传给 Chrome。有两种干净的解决办法。

SeleniumBase

SeleniumBase 会自行处理代理认证:

Python
# pip install seleniumbase
from seleniumbase import SB

with SB(proxy="USER:PASS@HOST:PORT") as sb:
    sb.open("https://api.ipify.org")
    print(sb.get_text("body"))

IP 白名单

在 ISP 和数据中心订单上,把服务器地址加入 IP 白名单,然后不带凭据地把代理交给 Chrome:

Python
# Works when your server's IP is in the order's whitelist:
# Chrome cannot take a username and password in --proxy-server.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=http://HOST:PORT")

driver = webdriver.Chrome(options=options)
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
driver.quit()

使用住宅代理时#

  • 每个浏览器或上下文使用一行固定字符串,让页面、脚本和 API 请求都从同一个地址发出。
  • 屏蔽不需要的图片、媒体和字体:浏览器下载的每个字节都要计费。见 流量。
  • 在自动化配置文件中关闭浏览器更新和组件下载。

没有找到答案?

网站在线客服 24 小时回复。通过 Telegram 联系通常最快,提交工单会通过邮件回复。