Cambia lingua
Italiano English Русский Deutsch Español Français Українська Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Menu
Prezzi
Proxy
TIPI DI PROXY
PER POSIZIONE77 posizioni
Soluzioni
Risorse

Come usare un proxy con Playwright

Dai a Playwright un indirizzo ISP statico, all’avvio o per un singolo contesto del browser. Gli esempi sono stati eseguiti in Chromium, Firefox e WebKit su un proxy locale prima della pubblicazione.

In breve: Passa proxy con server, username e password a chromium.launch, oppure a browser.new_context per limitarlo a un contesto. In HTTP, tutti e tre i motori si autenticano con quei campi. In SOCKS5 nessuno di essi accetta nome utente e password: Playwright si rifiuta di avviarsi. Metti il tuo IP nella whitelist del proxy e indica solo il server socks5://.

Playwright pilota Chromium, Firefox e WebKit con un’unica API, e il proxy fa parte del modo in cui si crea un browser o un contesto. Questo rende facile usare più indirizzi in un solo script, ed è anche il punto in cui si trova il suo unico limite rigido: SOCKS5 con password.

Proxy in Playwright con Python

L’esempio Python avvia Chromium con il proxy per l’intero browser; l’esempio per contesto lo limita invece a un solo contesto. Per cambiare motore basta sostituire chromium con firefox o webkit; l’oggetto proxy resta lo stesso.

Autenticazione del proxy in Playwright

I tre motori rispondono al 407 del proxy con nome utente e password presi dall’oggetto proxy quando il proxy parla HTTP. Un proxy SOCKS5 non riceve questa risposta da nessuno di essi, ed è per questo che l’esempio SOCKS5 non contiene credenziali e si basa sulla whitelist.

Proxy per pagina in Playwright, e bypass

Non si può associare un proxy a una singola pagina. L’unità è il contesto: crea un contesto per indirizzo e apri al suo interno le pagine che devono condividere quell’indirizzo. In Playwright i contesti costano poco, quindi uno script che controlla un negozio online da tre paesi tiene aperti tre contesti, ciascuno creato dal suo ordine.

L’oggetto proxy accetta anche un campo bypass, un elenco di host separati da virgole da raggiungere direttamente. Usalo per i tuoi servizi interni o per un server di test locale, così che esca tramite l’indirizzo che paghi solo il traffico destinato al mondo esterno.

Impostare un proxy in Playwright

  1. Copia host, porta, nome utente e password

    Da I miei proxy nella dashboard oppure dall’ordine nell’API. Ogni indirizzo ha i suoi quattro valori.

  2. Scegli l’ambito

    Con launch è l’intero browser a usare il proxy. Con new_context lo usa solo quel contesto, quindi uno stesso script può far girare più contesti tramite indirizzi diversi.

  3. Passa l’oggetto proxy

    {"server": "http://HOST:PORT", "username": "USERNAME", "password": "PASSWORD"}. Le credenziali vanno nei loro campi, mai dentro l’URL del server.

  4. Passi a SOCKS5? Togli le credenziali

    Playwright non può autenticarsi su un proxy SOCKS5, quindi passa l’ordine a SOCKS5, ammetti l’IP della tua macchina con la chiamata whitelist delle schede del codice e lascia solo socks5://HOST:PORT, con la nuova porta. Finché una whitelist è impostata, il proxy ammette solo gli indirizzi della lista e nome utente e password smettono di funzionare per quell’ordine; inviando una lista vuota la whitelist si disattiva e l’accesso con password torna a funzionare.

  5. Verifica l’indirizzo di uscita

    Apri una volta What Is My IP in una pagina di quel browser o contesto, prima dell’esecuzione vera.

# 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"]}'

Codice testato per Playwright

Eseguito con Playwright 1.64 per Python e per Node. Gli esempi HTTP inviano nome utente e password e richiedono un ordine senza whitelist impostata; quello SOCKS5 si basa sulla whitelist e richiede di passare prima il proxy a SOCKS5, il che dà una nuova porta. Sostituisci i valori in maiuscolo con quelli del tuo ordine.

Documentazione API completa

Che cosa accetta ciascun browser di Playwright

Testato il 2026-10-22 con Playwright 1.64 per Python su macOS: ogni motore è stato avviato su un proxy locale che richiedeva una password e su uno che ammetteva un client in whitelist. Rifiutato significa che Playwright si è fermato all’avvio con un errore.
HTTP con passwordSOCKS5 con passwordSOCKS5, in whitelist
ChromiumFunzionaRifiutato all’avvioFunziona
FirefoxFunzionaRifiutato all’avvioFunziona
WebKitFunzionaRifiutato all’avvioFunziona

Che cosa va storto con i proxy in Playwright

Credenziali nella stringa del server

Playwright legge nome utente e password dai loro campi. Se li scrivi invece nell’URL del server, non vengono inviati affatto: nel nostro test la prima navigazione è rimasta bloccata fino al timeout, senza alcun messaggio che indicasse le credenziali.

Una password SOCKS5

Tutti i motori rifiutano l’autenticazione SOCKS5, e l’errore arriva all’avvio, prima che si apra qualsiasi pagina. La soluzione non è un’altra libreria: metti in whitelist l’IP da cui gira il tuo script e togli le credenziali.

Aspettarsi che new_page cambi l’indirizzo

Le pagine condividono il proxy del loro contesto, e i contesti condividono quello del browser a meno che non ne abbiano uno proprio. Per usare due indirizzi in parallelo, crea due contesti, ciascuno con il suo proxy.

Saltare il controllo dell’uscita

Un errore di battitura nella porta o un proxy ancora impostato su HTTP falliscono in modo evidente, ma un contesto creato senza l’oggetto proxy esce direttamente e in silenzio. Carica una pagina che restituisce l’IP una volta per ogni contesto che configuri.

Come si inserisce l’indirizzo nel modello di Playwright

Un contesto, un indirizzo
Ogni contesto del browser può avere il suo IP statico, dal suo ordine
Accesso HTTP
Campi username e password, accettati da Chromium, Firefox e WebKit
Accesso SOCKS5
Solo tramite indirizzo IPv4 in whitelist, impostato tramite l’API o l’MCP
Stabilità
L’IP resta lo stesso tra un’esecuzione e l’altra per l’intero periodo che hai pagato

Passi successivi dopo Playwright

Domande sui proxy in Playwright

Come si imposta un proxy con autenticazione in Playwright?

Passa un oggetto con server, username e password, a launch oppure a new_context. Con un proxy HTTP, Chromium, Firefox e WebKit inviano tutti quelle credenziali quando il proxy le chiede.

Posso usare un proxy SOCKS5 con password in Playwright?

No. Playwright si ferma all’avvio con un errore che dice che il browser non supporta l’autenticazione dei proxy SOCKS5, in tutti e tre i motori. Metti in whitelist l’IP da cui gira il tuo script, poi passa solo il server socks5; la nostra whitelist vale in SOCKS5 come in HTTP. SOCKS5

Come si usa un proxy diverso per ogni pagina?

Dai a ogni contesto del browser il suo proxy e apri la pagina in quel contesto. Le pagine dentro un contesto ne condividono sempre il proxy, quindi un proxy per pagina significa un contesto per pagina.

La configurazione è la stessa in Python e in Node?

Lo stesso oggetto con gli stessi tre campi: Python lo scrive come dizionario, Node come oggetto letterale. Entrambi gli esempi di questa pagina sono stati eseguiti con Playwright 1.64.

Posso usare il proxy per lo scraping?

I test delle tue pagine per regione, i controlli di qualità, la verifica degli annunci, le ricerche di prezzi e di mercato, il monitoraggio SEO e la tutela del marchio si svolgono senza revisione preventiva secondo la nostra politica di utilizzo accettabile. La sola disponibilità pubblica non autorizza a raccogliere dati, i dati personali richiedono una base giuridica dichiarata, e l’indirizzo non supera CAPTCHA, rilevamento dei bot, limiti di frequenza o ban; la politica vieta di provarci. Politica di Utilizzo Accettabile

Contesti e indirizzi statici corrispondono uno a uno: un contesto per mercato o per lavoro, ciascuno che raggiunge la destinazione dallo stesso IP, invariato, a ogni esecuzione dello script. Acquista tanti indirizzi quanti sono i contesti che fai girare dalla pagina dei proxy ISP, confronta i piani nella pagina dei prezzi e scarica senza browser con la guida per Python requests.

Fonti