Puppeteer
Agent Browser proporciona una plataforma de alto rendimiento y sin servidores diseñada para simplificar el proceso de extracción de datos de sitios web dinámicos. A través de la integración perfecta con Puppeteer, los desarrolladores pueden ejecutar, gestionar y supervisar navegadores sin cabeza sin necesidad de un servidor dedicado, lo que permite una automatización web y recopilación de datos eficientes.
Instalación de las bibliotecas necesarias
Primero, instale puppeteer-core, una versión ligera de Puppeteer diseñada para conectarse a instancias de navegador existentes:
npm install puppeteer-core
Escritura de código para conectarse a Agent Browser
En su código Puppeteer, conéctese a Agent Browser utilizando lo siguiente:
const { Puppeteer } = require('@scrapeless-ai/sdk');
(async () => {
const browser = await Puppeteer.connect({
apiKey: 'Your API key',
sessionName: 'sdk_test',
sessionTTL: 180,
proxyCountry: 'US',
sessionRecording: true,
defaultViewport: null
});
const page = await browser.newPage();
await page.goto('https://www.scrapeless.com');
console.log(await page.title());
await browser.close();
})();Esto le permite aprovechar la infraestructura de Agent Browser, incluyendo escalabilidad, rotación de IP y acceso global.
Ejemplos prácticos
Estas son algunas operaciones comunes de Puppeteer después de integrar Agent Browser:
- Navegación y extracción de contenido de página
const page = await browser.newPage();
await page.goto('https://www.example.com');
console.log(await page.title());
const html = await page.content();
console.log(html);
await browser.close();
- Captura de pantallas
const page = await browser.newPage();
await page.goto('https://www.example.com');
await page.screenshot({ path: 'example.png' });
console.log('Screenshot saved as example.png');
await browser.close();
- Ejecución de código personalizado
const page = await browser.newPage();
await page.goto('https://www.example.com');
const result = await page.evaluate(() => document.title);
console.log('Page title:', result);
await browser.close();
- Simula un clic de ratón.
const { createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Agent Browser as shown above
const cdpSession = await createPuppeteerCDPSession(page);
await cdpSession.realClick('button[type="submit"]');- Simular entrada de teclado.
const { createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Agent Browser as shown above
const cdpSession = await createPuppeteerCDPSession(page);
await cdpSession.realFill('#login-email', 'scrapeless@gmail.com');- Obtener la URL actual de la página usando Scrapeless Agent
const { createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Agent Browser as shown above
const cdpSession = await createPuppeteerCDPSession(page);
const { error, liveURL } = await cdpSession.liveURL();- Resolver CAPTCHA de imagen
const { createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Agent Browser as shown above
const cdpSession = await createPuppeteerCDPSession(page);
await cdpSession.imageToText({
imageSelector: '.captcha__image',
inputSelector: 'input[name="captcha"]',
timeout: 30000,
});- Deshabilitar la resolución automática de CAPTCHA
const { createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Agent Browser as shown above
const cdpSession = await createPuppeteerCDPSession(page);
await cdpSession.disableCaptchaAutoSolve();- Resolver manualmente un CAPTCHA con opciones especificadas
const { createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Agent Browser as shown above
const cdpSession = await createPuppeteerCDPSession(page);
await cdpSession.solveCaptcha();- Esperar a que se detecte un CAPTCHA en la página
const { createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Agent Browser as shown above
const cdpSession = await createPuppeteerCDPSession(page);
await cdpSession.waitCaptchaDetected({ timeout: 30000 });- Esperar a que se resuelva un CAPTCHA (ya sea con éxito o fallido)
const { createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
// ... connect to Agent Browser as shown above
const cdpSession = await createPuppeteerCDPSession(page);
await cdpSession.waitCaptchaSolved({ timeout: 30000 });