Cómo usar proxies con Playwright: Guía completa
Configura proxies de GProxy con Playwright para automatización cross-browser. Soporta proxy switching por context, Chrome/Firefox/WebKit y authentication integrada.
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
Instalar Playwright
Instalar Playwright y los binarios del navegador
# Python
pip install playwright
playwright install chromium
# Node.js
npm install playwright
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())
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()
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']
)
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
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()
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())
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.
FAQ
¿Puedo usar diferentes proxies por página? +
¿Funciona Playwright con SOCKS5? +
¿Qué navegador debo usar para scraping? +
¿Es Playwright más rápido que Puppeteer? +
¿Listo para empezar?
Comience con GProxy en minutos — proxies residenciales desde $0.85/GB, IPv6 desde $0.03/proxy, pago por uso.
