Ir al contenido

Cómo usar proxies con Playwright: Guía completa

TL;DR

Configura proxies de GProxy con Playwright para automatización cross-browser. Soporta proxy switching por context, Chrome/Firefox/WebKit y authentication integrada.

Idioma: Python / JavaScript

Requisitos previos

  • Python 3.8+ o Node.js 16+
  • Playwright instalado (pip install playwright && playwright install)
  • Cuenta de GProxy con un plan de proxy activo
  • Familiaridad con patrones async/await

Configuración paso a paso

1

Instalar Playwright

Instalar Playwright y los binarios del navegador

# Python
pip install playwright
playwright install chromium

# Node.js
npm install playwright
2

Lanzar con proxy

Crear un contexto de navegador con proxy de GProxy

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    context = browser.new_context(proxy={
        'server': 'http://proxy.gproxy.net:1000',
        'username': 'YOUR_USER',
        'password': 'YOUR_PASS'
    })
    page = context.new_page()
    page.goto('https://httpbin.org/ip')
    print(page.content())
3

Rotación por contexto

Usar diferentes proxies por contexto para rotación

countries = ['us', 'de', 'gb', 'fr']
for country in countries:
    ctx = browser.new_context(proxy={
        'server': 'http://proxy.gproxy.net:1000',
        'username': f'USER-country-{country}',
        'password': 'PASS'
    })
    page = ctx.new_page()
    page.goto('https://httpbin.org/ip')
    print(f'{country}: {page.text_content("body")}')
    ctx.close()
4

Añadir emulación de geo-localización

Combinar proxy con locale y zona horaria para una geo-simulación completa

context = browser.new_context(
    proxy={'server': 'http://proxy.gproxy.net:1000',
           'username': 'USER-country-us', 'password': 'PASS'},
    locale='en-US',
    timezone_id='America/New_York',
    geolocation={'latitude': 40.7128, 'longitude': -74.0060},
    permissions=['geolocation']
)
5

Ejecutar scraping en paralelo

Realizar scraping de múltiples páginas concurrentemente con diferentes proxies

import asyncio
from playwright.async_api import async_playwright

async def scrape(browser, url, country):
    ctx = await browser.new_context(proxy={
        'server': 'http://proxy.gproxy.net:1000',
        'username': f'USER-country-{country}',
        'password': 'PASS'
    })
    page = await ctx.new_page()
    await page.goto(url)
    title = await page.title()
    await ctx.close()
    return title

Ejemplos de código

Python Sync API con GProxy · python
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    context = browser.new_context(
        proxy={
            'server': 'http://proxy.gproxy.net:1000',
            'username': 'YOUR_USER',
            'password': 'YOUR_PASS'
        }
    )
    page = context.new_page()
    page.goto('https://httpbin.org/ip')
    print('IP:', page.text_content('body'))
    context.close()
    browser.close()
Scraping paralelo asíncrono · python
import asyncio
from playwright.async_api import async_playwright

async def scrape_page(browser, url, country):
    context = await browser.new_context(proxy={
        'server': 'http://proxy.gproxy.net:1000',
        'username': f'USER-country-{country}',
        'password': 'PASS'
    })
    page = await context.new_page()
    await page.goto(url, timeout=30000)
    data = await page.evaluate('() => document.title')
    await context.close()
    return {'url': url, 'country': country, 'title': data}

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        tasks = [
            scrape_page(browser, 'https://example.com', 'us'),
            scrape_page(browser, 'https://example.com', 'de'),
            scrape_page(browser, 'https://example.com', 'jp'),
        ]
        results = await asyncio.gather(*tasks)
        print(results)
        await browser.close()

asyncio.run(main())
Node.js con GProxy · javascript
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({
    proxy: {
      server: 'http://proxy.gproxy.net:1000',
      username: 'YOUR_USER',
      password: 'YOUR_PASS'
    }
  });

  const page = await context.newPage();
  await page.goto('https://httpbin.org/ip');
  console.log(await page.textContent('body'));

  await context.close();
  await browser.close();
})();

¿Por qué usar Playwright para el scraping basado en proxy?

Playwright de Microsoft es el framework de automatización de navegadores más moderno, compatible con Chromium, Firefox y WebKit desde una única API. Su característica estrella para usuarios de proxy: soporte nativo de proxy por contexto. A diferencia de Puppeteer y Selenium, puedes configurar diferentes proxies para diferentes contextos de navegador sin lanzar nuevas instancias del navegador. Combinado con los más de 10M+ de IPs residenciales de GProxy, esto convierte a Playwright en la opción más rápida para el scraping concurrente con geo-targeting.

Configuración de proxy por contexto

Los contextos de navegador de Playwright son entornos ligeros y aislados que pueden tener cada uno su propia configuración de proxy. Crea un contexto con un proxy de GProxy, realiza tu scraping, ciérralo y crea otro con un proxy diferente — todo dentro de la misma instancia del navegador. Esto es significativamente más eficiente que el enfoque de Selenium o Puppeteer.

Autenticación integrada

Playwright gestiona la autenticación de proxy HTTP de forma nativa a través de la configuración del proxy. Pasa el username y password directamente en la configuración del proxy — sin necesidad de extensiones de navegador ni soluciones alternativas. Esto funciona de manera consistente en Chromium, Firefox y WebKit.

Soporte multi-navegador

Prueba y realiza scraping con diferentes motores de búsqueda utilizando el mismo código. Chromium para la mayoría de las tareas, Firefox para sitios que bloquean la automatización basada en Chrome, y WebKit para un comportamiento similar a Safari. Todos admiten proxies de GProxy a través de la misma API de configuración.

Geo-Targeting con Playwright

Combina los proxies de GProxy orientados por país con la configuración de geolocalización y locale integrada de Playwright para una simulación de ubicación completa. Configura el proxy a una IP de US, el locale a en-US, el timezone a America/New_York y la geolocalización a coordenadas de New York para obtener un perfil de usuario de US totalmente consistente.

Scraping paralelo a escala

La arquitectura de Playwright admite una alta concurrencia con un uso mínimo de recursos. Crea docenas de contextos de navegador con diferentes proxies de GProxy ejecutándose en paralelo dentro de una única instancia de navegador. Cada contexto está aislado con sus propias cookies, almacenamiento y proxy — ideal para la recolección de datos a gran escala.

Casos de uso

Cross-Browser Testing

Prueba sitios web desde diferentes ubicaciones usando Chromium, Firefox, y WebKit con proxies geo-localizados.

Competitive Intelligence

Monitorea sitios web de la competencia en varias regiones con rotación de proxy por contexto y emulación de ubicación.

Ad Verification

Verifica la ubicación de anuncios y el contenido en diferentes países usando IPs residenciales segmentadas.

Dynamic Content Scraping

Extrae datos de sitios con mucho JavaScript con renderizado de navegador completo y rotación de proxy confiable.

Consejos profesionales
Use browser contexts en lugar de nuevos browsers — son 10x más rápidos de crear y admiten per-context proxies. Combine proxy con locale, timezone, y geolocation para una geo-simulation completa. Use route() para bloquear recursos en lugar de request interception para un código más limpio. La herramienta codegen de Playwright puede grabar interacciones y generar scripts compatibles con proxy.

FAQ

¿Puedo usar diferentes proxies por página? +
¡Sí! Playwright admite la configuración de proxy por contexto. Crea un nuevo contexto con un proxy diferente para cada tarea — esta es la ventaja clave de Playwright sobre Selenium y Puppeteer.
¿Funciona Playwright con SOCKS5? +
Sí, Playwright admite proxies SOCKS5 de forma nativa. Usa 'socks5://host:port' como la url del servidor en la configuración del proxy.
¿Qué navegador debo usar para scraping? +
Chromium para la mayoría de las tareas. Firefox si los sitios bloquean bots basados en Chrome. WebKit para probar el comportamiento de Safari en iOS.
¿Es Playwright más rápido que Puppeteer? +
Rendimiento similar para tareas de una sola página. Playwright es más rápido para el scraping concurrente porque los proxies por contexto evitan lanzar múltiples navegadores.

¿Listo para empezar?

Comience con GProxy en minutos — proxies residenciales desde $0.85/GB, IPv6 desde $0.03/proxy, pago por uso.

Otras integraciones

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.