La recopilación de datos y las pruebas de páginas usan el mismo producto de red; lo que cambia es la API de la herramienta. Esta guía cubre tres de las más usadas. Para cuentas con sesión iniciada, vuelve a las guías de AdsPower o de n8n. Para Selenium, mira proxy en Selenium; para peticiones sin navegador, proxy en Python. Playwright tiene además una guía propia más completa: proxy en Playwright.
Credenciales: host, puerto HTTP, usuario y contraseña en el panel. Valídalas antes con la prueba con cURL.
Playwright
La API oficial acepta el proxy al lanzar el navegador, con usuario y contraseña incluidos, sin trucos en la URL.
import { chromium } from 'playwright'
const browser = await chromium.launch({
proxy: {
server: 'http://p1.ejemplo.com:8000',
username: 'tu-usuario',
password: 'tu-contrasena',
},
})
const page = await browser.newPage()
await page.goto('https://api.ipify.org?format=json')
console.log(await page.textContent('body'))
await browser.close()
SOCKS5: Playwright acepta server: 'socks5://p1.ejemplo.com:1080', pero Chromium no admite usuario y contraseña en un proxy SOCKS5. Con credencial, usa HTTP. Si cada pestaña necesita una IP distinta, usa contextos aislados (browser.newContext({ proxy: … })), explicados en la guía de Playwright.
Puppeteer
Al Chrome de Puppeteer no hay que pasarle http://user:pass@host. Separa el servidor de la autenticación:
import puppeteer from 'puppeteer'
const browser = await puppeteer.launch({
args: ['--proxy-server=http://p1.ejemplo.com:8000'],
})
const page = await browser.newPage()
await page.authenticate({
username: 'tu-usuario',
password: 'tu-contrasena',
})
await page.goto('https://api.ipify.org?format=json')
console.log(await page.content())
await browser.close()
Si authenticate no funciona en algún flujo (PDF, worker), usa proxy-chain como en la guía de WPPConnect: el navegador habla con un proxy local sin contraseña.
Scrapy
Scrapy no lanza Chrome por defecto. La URL con usuario y contraseña en request.meta es el camino documentado:
# settings.py: opcional, valor por defecto para todas las peticiones
# DOWNLOADER_MIDDLEWARES ya incluye HttpProxyMiddleware
# en el spider
def start_requests(self):
yield scrapy.Request(
"https://api.ipify.org?format=json",
meta={
"proxy": "http://tu-usuario:[email protected]:8000",
},
)
Rotación: un middleware propio elige la URL del proxy en cada petición. No apuntes el crawler al mismo ISP residencial que usas en el Business Manager. Usa residencial por GB (IP de Brasil) o IPv6 cuando el sitio de destino acepta IPv6.
Respeta robots.txt, los términos de cada sitio y nuestra política de uso aceptable.
Lo que el proxy no resuelve
El proxy cambia la IP de salida. No resuelve CAPTCHAs, no cambia la huella digital del navegador automatizado ni hace que un sitio que prohíbe la recopilación automática pase a permitirla.
Después de configurar
- n8n si la recopilación pasa por un workflow
- Consumo de GB si el plan es residencial
- Errores comunes