Integrações · Intermediário

Usando proxies com Playwright: uma saída por navegador ou por contexto

O Playwright usa o proxy na inicialização ou por contexto do navegador, com credenciais, para que cada contexto possa ser sua própria sessão fixa em seu próprio país, sem reiniciar o navegador.

2 minutos de leitura 5 seções Revisto Equipa editorial Proxy Cyber

Proxy no nível de lançamento#

Pitão
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://res.proxy-cyber.com:9000",
        "username": "USER-cc-us-sid-run1-ttl-30m",
        "password": "PASS",
    })
    page = browser.new_page()
    page.goto("https://api.ipify.org")
    print(page.inner_text("body"))
    browser.close()

Atribua um identificador de sessão diferente a cada fluxo independente quando o gateway o permitir. Confirme a duração e os parâmetros geográficos nos dados de ligação. Um dispositivo residencial pode desligar-se antes do prazo pedido; uma sessão persistente não garante o mesmo IP durante dias. Para um endereço fixo, compare produtos estáticos dedicados.

Proxies por contexto#

Para executar vários países ou sessões em um navegador, inicie com um proxy de espaço reservado e dê a cada contexto o seu próprio. O Chromium precisa do proxy no nível de lançamento para que os proxies por contexto sejam respeitados.

Pitão
browser = p.chromium.launch(proxy={"server": "http://per-context"})

de = browser.new_context(proxy={"server": "http://res.proxy-cyber.com:9000", "username": "USER-cc-de-city-berlin-sid-de1-ttl-30m", "password": "PASS"})
us = browser.new_context(proxy={"server": "http://res.proxy-cyber.com:9000", "username": "USER-cc-us-state-tx-sid-us1-ttl-30m", "password": "PASS"})

Combine o contexto com a saída#

Dê a cada contexto a localidade e o fuso horário de seu país, para que o IP, o idioma e o relógio estejam de acordo: locale=\"de-DE\", timezone_id=\"Europe/Berlin\" para o contexto de Berlim. As incompatibilidades são um sinal de bot mais forte do que o próprio IP.

Economize gigabytes: bloqueie o que você não precisa#

Pitão
def block(route):
    if route.request.resource_type in {"image", "media", "font", "stylesheet"}:
        return route.abort()
    return route.continue_()

page.route("**/*", block)

Uma página renderizada pode pesar de 3 a 5 MB; seu HTML e API chamam algumas centenas de kilobytes. Numa rede por GB, esta regra única reduz a conta em 80 a 90%.

Verifique e solucione problemas#

  • Abra primeiro um serviço IP-echo e verifique o país; em seguida, consulte uma pesquisa de geolocalização da cidade.
  • A net::ERR_TUNNEL_CONNECTION_FAILED ou ERR_PROXY_CONNECTION_FAILED na inicialização significa que as credenciais ou um parâmetro estão errados; teste o mesmo URL com cURL para ler o código do gateway.
  • O WebRTC é desabilitado por padrão em contextos do Playwright somente se você o bloquear; adicionar --disable-webrtc endurecimento de estilo ou bloqueio STUN quando a privacidade é importante.

Perguntas que as pessoas fazem#

Cada aba pode ter um proxy diferente?

Cada contexto pode; guias (páginas) dentro de um contexto compartilham seu proxy. Crie um contexto por sessão ou país.

O Playwright oferece suporte a proxies SOCKS5 com autenticação?

O Chromium não aceita credenciais SOCKS5; use o proxy HTTP na porta 9000 com nome de usuário e senha ou coloque o IP do seu servidor na lista de permissões e use Socks5://res.proxy-cyber.com:9001 sem credenciais.

Sua conta

Gerencie seus proxies em uma conta

Compare redes, faça pedidos e acompanhe seu saldo e solicitações de suporte em um painel. Nossa equipe analisa os pagamentos e fornece detalhes de conexão após a entrega.

Criar conta