Đổi ngôn ngữ
Tiếng Việt English Русский Deutsch Español Français Italiano Українська Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Menu
Bảng giá
Proxy
LOẠI PROXY
THEO VỊ TRÍ77 vị trí
Giải pháp
Tài nguyên

Cách dùng proxy với Playwright

Giao cho Playwright một địa chỉ ISP tĩnh, khi launch hoặc cho một browser context duy nhất. Các mẫu code đã được chạy trong Chromium, Firefox và WebKit với một proxy cục bộ trước khi đăng.

Tóm lại: Truyền proxy với server, username và password cho chromium.launch, hoặc cho browser.new_context để giới hạn nó trong một context. Qua HTTP, cả ba engine đều xác thực bằng các trường đó. Qua SOCKS5, không engine nào chấp nhận tên đăng nhập và mật khẩu: Playwright từ chối launch. Hãy đưa IP của bạn vào danh sách IP cho phép của proxy và chỉ truyền server socks5://.

Playwright điều khiển Chromium, Firefox và WebKit qua một API duy nhất, và proxy là một phần của cách tạo trình duyệt hoặc context. Điều đó giúp dễ chạy nhiều địa chỉ trong một script, và đó cũng là nơi có giới hạn cứng duy nhất của nó: SOCKS5 có mật khẩu.

Proxy cho Playwright bằng Python

Mẫu Python launch Chromium với proxy cho cả trình duyệt; mẫu theo context thì giới hạn proxy trong một context. Đổi engine chỉ là đổi chromium thành firefox hoặc webkit; đối tượng proxy giữ nguyên.

Xác thực proxy trong Playwright

Cả ba engine trả lời mã 407 của proxy bằng tên đăng nhập và mật khẩu từ đối tượng proxy khi proxy dùng HTTP. Proxy SOCKS5 không nhận được câu trả lời như vậy từ engine nào, đó là lý do mẫu SOCKS5 không mang thông tin đăng nhập và dựa vào danh sách IP cho phép.

Proxy cho từng trang trong Playwright, và bypass

Không thể gắn proxy cho một trang riêng lẻ. Đơn vị là context: tạo một context cho mỗi địa chỉ và mở các trang cần dùng chung địa chỉ đó bên trong nó. Context trong Playwright tốn ít tài nguyên, nên một script kiểm tra một cửa hàng từ ba quốc gia sẽ giữ ba context, mỗi context dựng từ đơn hàng riêng.

Đối tượng proxy còn nhận trường bypass, một danh sách host phân tách bằng dấu phẩy cần được truy cập trực tiếp. Hãy dùng nó cho các dịch vụ nội bộ của bạn hoặc một máy chủ kiểm thử cục bộ, để chỉ lưu lượng hướng ra thế giới bên ngoài mới đi qua địa chỉ bạn trả tiền.

Đặt proxy trong Playwright

  1. Sao chép host, port, tên đăng nhập và mật khẩu

    Từ mục Proxy của tôi trong bảng điều khiển hoặc từ đơn hàng trong API. Mỗi địa chỉ đi kèm bốn giá trị riêng.

  2. Chọn phạm vi

    Khi đặt lúc launch, cả trình duyệt dùng proxy. Khi đặt trên new_context, chỉ context đó dùng, nên một script có thể chạy nhiều context qua các địa chỉ khác nhau.

  3. Truyền đối tượng proxy

    {"server": "http://HOST:PORT", "username": "USERNAME", "password": "PASSWORD"}. Thông tin đăng nhập nằm trong các trường riêng của chúng, không bao giờ nằm trong URL của server.

  4. Chuyển sang SOCKS5? Bỏ thông tin đăng nhập

    Playwright không đăng nhập được vào proxy SOCKS5, nên hãy chuyển đơn hàng sang SOCKS5, cho phép IP máy của bạn bằng lời gọi danh sách cho phép trong các tab code, và chỉ giữ socks5://HOST:PORT, với port mới. Khi danh sách đang được đặt, proxy chỉ chấp nhận các địa chỉ có trong danh sách, còn tên đăng nhập và mật khẩu ngừng hoạt động với đơn hàng đó; gửi một danh sách rỗng sẽ tắt danh sách cho phép, và đăng nhập bằng mật khẩu hoạt động trở lại.

  5. Xác nhận địa chỉ đi ra

    Mở What Is My IP một lần trong một trang của trình duyệt hoặc context đó, trước lần chạy thật.

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

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://HOST:PORT",
        "username": "USERNAME",
        "password": "PASSWORD",
    })
    page = browser.new_page()
    page.goto("https://example.com/")
    print(page.title())
    browser.close()
// npm i playwright && npx playwright install chromium
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({
    proxy: {
      server: 'http://HOST:PORT',
      username: 'USERNAME',
      password: 'PASSWORD',
    },
  });
  const page = await browser.newPage();
  await page.goto('https://example.com/');
  console.log(await page.title());
  await browser.close();
})();
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    # The proxy belongs to this context only; another context can use
    # a different address, or none.
    context = browser.new_context(proxy={
        "server": "http://HOST:PORT",
        "username": "USERNAME",
        "password": "PASSWORD",
    })
    page = context.new_page()
    page.goto("https://example.com/")
    print(page.title())
    browser.close()
# Switch the proxy to SOCKS5 and put your machine's IP on its whitelist:
# Chromium cannot send a SOCKS5 username and password.
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={"server": "socks5://HOST:PORT"})
    page = browser.new_page()
    page.goto("https://example.com/")
    print(page.title())
    browser.close()
# Put the public IPv4 address your code runs from on the proxy's
# whitelist. Replaces the list; an empty list turns whitelisting off
# and the proxy falls back to username and password.
curl -X PUT "https://api.proxyjam.com/public/v1/orders/ORDER_ID/whitelist" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"whitelisted_ips": ["YOUR_IP"]}'

Code đã chạy thử cho Playwright

Chạy với Playwright 1.64 cho Python và cho Node. Các mẫu HTTP gửi tên đăng nhập và mật khẩu nên cần một đơn hàng chưa đặt danh sách IP cho phép; mẫu SOCKS5 dựa vào danh sách cho phép và cần chuyển proxy sang SOCKS5 trước, việc này cho ra một port mới. Thay các giá trị viết hoa bằng giá trị của đơn hàng của bạn.

Tài liệu API đầy đủ

Mỗi trình duyệt của Playwright chấp nhận gì

Thử nghiệm ngày 2026-10-22 với Playwright 1.64 cho Python trên macOS: mỗi engine được launch với một proxy đòi mật khẩu, và với một proxy chấp nhận client có trong danh sách cho phép. Bị từ chối nghĩa là Playwright dừng lại khi launch kèm một lỗi.
HTTP có mật khẩuSOCKS5 có mật khẩuSOCKS5, có trong danh sách cho phép
ChromiumChạy đượcBị từ chối khi launchChạy được
FirefoxChạy đượcBị từ chối khi launchChạy được
WebKitChạy đượcBị từ chối khi launchChạy được

Những gì hay sai với proxy trong Playwright

Thông tin đăng nhập trong chuỗi server

Playwright đọc tên đăng nhập và mật khẩu từ các trường riêng của chúng. Nếu viết vào URL của server, chúng hoàn toàn không được gửi: trong thử nghiệm của chúng tôi, lần điều hướng đầu tiên bị treo cho đến khi hết thời gian chờ, không có thông báo nào chỉ ra thông tin đăng nhập.

Mật khẩu SOCKS5

Mọi engine đều từ chối xác thực SOCKS5, và lỗi xuất hiện khi launch, trước khi bất kỳ trang nào mở. Cách sửa không phải là đổi thư viện: hãy đưa IP nơi script của bạn chạy vào danh sách cho phép và bỏ thông tin đăng nhập.

Tưởng rằng new_page sẽ đổi địa chỉ

Các trang dùng chung proxy của context chứa chúng, và các context dùng chung proxy của trình duyệt trừ khi được giao proxy riêng. Để chạy hai địa chỉ song song, hãy tạo hai context, mỗi context có proxy của nó.

Bỏ qua bước kiểm tra địa chỉ đi ra

Gõ sai port hoặc proxy vẫn đang đặt HTTP sẽ báo lỗi rõ ràng, nhưng một context được tạo mà không có đối tượng proxy sẽ đi thẳng ra ngoài mà không báo gì. Hãy tải một trang trả lại IP một lần cho mỗi context bạn cấu hình.

Địa chỉ khớp với mô hình của Playwright ra sao

Một context, một địa chỉ
Mỗi browser context có thể mang IP tĩnh riêng từ đơn hàng riêng
Đăng nhập qua HTTP
Các trường username và password, được Chromium, Firefox và WebKit chấp nhận
Đăng nhập qua SOCKS5
Chỉ bằng địa chỉ IPv4 có trong danh sách cho phép, đặt qua API hoặc MCP
Độ ổn định
IP giữ nguyên qua các lần chạy trong suốt kỳ bạn đã trả tiền

Bước tiếp theo từ Playwright

Câu hỏi về proxy trong Playwright

Làm sao đặt proxy có xác thực trong Playwright?

Truyền một đối tượng có server, username và password, cho launch hoặc cho new_context. Qua proxy HTTP, Chromium, Firefox và WebKit đều gửi các thông tin đăng nhập đó khi proxy yêu cầu.

Có thể dùng proxy SOCKS5 có mật khẩu trong Playwright không?

Không. Playwright dừng lại khi launch với lỗi nói rằng trình duyệt không hỗ trợ xác thực proxy SOCKS5, ở cả ba engine. Hãy đưa IP nơi script của bạn chạy vào danh sách cho phép, rồi chỉ truyền server socks5; danh sách cho phép của chúng tôi áp dụng cho SOCKS5 cũng như HTTP. SOCKS5

Làm sao dùng proxy khác nhau cho mỗi trang?

Giao cho mỗi browser context một proxy riêng và mở trang trong context đó. Các trang trong cùng một context luôn dùng chung proxy của nó, nên muốn mỗi trang một proxy thì cần mỗi trang một context.

Cài đặt trong Python và Node có giống nhau không?

Cùng một đối tượng với cùng ba trường: Python viết nó dưới dạng dictionary, Node dưới dạng object literal. Cả hai mẫu trên trang này đều được chạy với Playwright 1.64.

Có thể dùng proxy để scraping không?

Kiểm thử các trang của chính bạn theo vùng, kiểm tra chất lượng, xác minh quảng cáo, nghiên cứu giá và thị trường, giám sát SEO và bảo vệ thương hiệu chạy được mà không cần xét duyệt trước theo chính sách sử dụng chấp nhận được của chúng tôi. Việc dữ liệu được công khai tự nó không cho phép thu thập dữ liệu đó, dữ liệu cá nhân cần một cơ sở pháp lý được nêu rõ, và địa chỉ không vượt qua CAPTCHA, cơ chế phát hiện bot, giới hạn tần suất hay lệnh cấm; chính sách cấm thử làm điều đó. Chính sách Sử dụng Chấp nhận được

Context và địa chỉ tĩnh ứng với nhau một đối một: mỗi thị trường hoặc mỗi tác vụ một context, mỗi context đến trang đích từ một IP không đổi mỗi lần script chạy. Mua số địa chỉ bằng số context bạn chạy trên trang proxy ISP, so sánh các gói trên bảng giá, và tải trang không cần trình duyệt qua hướng dẫn Python requests.

Nguồn