剧作家指南 · 1 分钟阅读

Playwright 代理配置指南

Playwright 使代理成为一流:一个代理对象包含服务器、用户名和密码,可以在浏览器或上下文级别设置。以下是 Python 和 Node 中经过身份验证的 s4m 代理的干净设置。

一个代理对象,两个范围

与 Puppeteer 不同,Playwright 直接在其 proxy 选项中接受凭据,因此没有单独的身份验证步骤。该对象包含三个字段:server(主机和端口,带方案),以及 username 和 password。Playwright 为您处理代理的 407 挑战。

您可以在两个范围内设置该对象。将其传递给browser_type.launch(proxy=...)会将一个代理应用于整个浏览器。将其传递给browser.new_context(proxy=...)则将代理范围限制在单个上下文中——这就是您如何在一个浏览器中运行多个身份,每个身份都有自己的出口。对于s4m,请使用server="http://proxy.s4m.online:3128"与您的USER:PASS;HTTP端点是浏览器的可靠选择。Playwright还通过socks5://proxy.s4m.online:1080支持SOCKS5,尽管在浏览器中最好避免使用经过身份验证的SOCKS5。有关更多信息,请参见代理页面和Puppeteer指南。

使用认证代理的 Playwright

Python 和 Node,均设置服务器 + 用户名 + 密码。上下文级别的作用域允许每个上下文使用自己的出口。

python
# pip install playwright && playwright install chromium
from playwright.sync_api import sync_playwright

PROXY = {
    "server": "http://proxy.s4m.online:3128",  # HTTP endpoint
    "username": "USER",
    "password": "PASS",
}

with sync_playwright() as p:
    # Option A: proxy for the whole browser
    browser = p.chromium.launch(proxy=PROXY, headless=True)

    # Option B: proxy scoped to a single context (per-identity)
    context = browser.new_context(proxy=PROXY)
    page = context.new_page()
    page.goto("https://api.ipify.org?format=json", timeout=30000)
    print("Exit IP:", page.inner_text("body"))
    browser.close()

# ----- Node equivalent -----
# const { chromium } = require("playwright");
# const proxy = {
//   server: "http://proxy.s4m.online:3128",
//   username: "USER", password: "PASS",
// };
# (async () => {
//   const browser = await chromium.launch({ proxy, headless: true });
//   const page = await browser.newPage();
//   await page.goto("https://api.ipify.org?format=json");
//   console.log(await page.innerText("body"));
//   await browser.close();
// })();

设置它

从安装到经过验证的代理运行。

安装浏览器

运行 pip install playwright 然后 playwright install chromium(或 npm i playwright)。Playwright 下载自己的浏览器构建,因此不需要系统 Chrome。

构建代理对象

将服务器设置为 http://proxy.s4m.online:3128,并用您的 s4m 凭据填写用户名和密码。无需单独的身份验证调用。

选择范围

将代理传递给 launch() 以实现浏览器范围的退出,或在您希望每个上下文使用自己的 IP 以实现多个身份时传递给 new_context()。

确认出口

导航到IP回显端点并读取主体,以验证流量确实通过代理离开,然后再构建其余流程。

每个上下文的身份和诚实的限制

上下文级代理是Playwright在大规模自动化中的超级能力:一个浏览器进程,多个上下文,每个上下文都有自己的cookie和出口IP,彼此隔离。这比为每个身份启动一个浏览器更干净、更轻便。将其与每个上下文的独特User-Agent和视口设置配对,以便每个身份在内部保持一致。

同样的诚实适用于其他地方。s4m代理是数据中心 SOCKS5和HTTP——快速且稳定,理想用于测试和监控,但并不伪装成家庭连接,因此重度防御的网站可能会标记它们。代理更改您的IP,而不是您的浏览器指纹或行为,因此将其视为多个层中的一层。当服务期望一个稳定的地址时,添加一个专用个人IP。使用工具检查出口和端口,探索API,并首先以低成本测试免费代理列表。

FAQ

问题,已解答

我需要在 Playwright 中单独进行身份验证步骤吗?

不会。与Puppeteer不同,Playwright直接在其代理对象中获取用户名和密码,以及服务器。它会自动处理407挑战。

我可以给每个上下文设置自己的代理吗?

是的。将代理对象传递给browser.new_context(proxy=...),该上下文使用自己的出口。这是在一个浏览器中运行多个身份的干净方式。

我应该使用 HTTP 还是 SOCKS5 端点?

对于浏览器,请使用3128端口上的HTTP端点——这是可靠的选择。Playwright也支持SOCKS5,但在浏览器中最好避免使用经过身份验证的SOCKS5。

s4m的代理是住宅代理吗?

不。它们是经过身份验证的数据中心SOCKS5和HTTP代理,按需计费。非常适合测试和监控,尽管激进的反机器人系统可能会标记数据中心范围。

在代理后自动化浏览器

将 proxy.s4m.online 直接放入 Playwright 的代理对象中,根据上下文进行作用域设置,并仅为您使用的流量付费。添加专用 IP 以实现稳定的、按身份的出口。

人们通过搜索找到此页面

此页面回答的真实搜索短语 — 链接的短语打开详细覆盖它们的页面。