¿Cómo guardar y cargar cookies en Puppeteer?

Guardar y cargar cookies con Puppeteer es una forma eficaz de mantener el estado de la sesión en varias páginas. Esto puede resultar especialmente útil para tareas de Scraping web en las que es necesario navegar entre diferentes páginas sin perder los datos de la sesión. Puede utilizar el método page.cookies() para recuperar todas las cookies de una página web y el método page.setCookie() para cargar cookies en una página web. Para obtener una explicación detallada de qué son las cookies HTTP, consulte esta entrada del blog.

A continuación se muestra un ejemplo más completo de cómo guardar y cargar cookies con Puppeteer:

      const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // Abra el primer sitio web y espere a que se cargue.
  await page.goto('https://example.com', { waitUntil: 'networkidle2' });

  // Guarde todas las cookies de la primera página.
  const cookies = await page.cookies();
  console.log('Cookies de example.com:', cookies);

  // Abrir un segundo sitio web y esperar a que se cargue.
  await page.goto('https://httpbin.org/cookies', { waitUntil: 'networkidle2' });

  // Cargar las cookies guardadas anteriormente en la segunda página.
  await page.setCookie(...cookies);

  // Obtener y registrar las cookies de la segunda página para verificar que se han establecido.
  const cookiesSet = await page.cookies();
  console.log('Cookies establecidas en httpbin.org:', cookiesSet);

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

    

Explicación del código

  1. Inicie Puppeteer y abra una nueva página: const browser = await puppeteer.launch(); const page = await browser.newPage();
  2. Navega hasta el primer sitio web y espera a que se cargue por completo: await page.goto('https://example.com', { waitUntil: 'networkidle2' });
    La opción waitUntil: 'networkidle2' garantiza que la página se haya cargado por completo antes de continuar.
  3. Recuperar y registrar las cookies del primer sitio web: const cookies = await page.cookies(); console.log('Cookies de example.com:', cookies);
  4. Navegue hasta el segundo sitio web y espere a que se cargue por completo: await page.goto('https://httpbin.org/cookies', { waitUntil: 'networkidle2' });
  5. Cargar las cookies guardadas en el segundo sitio web: await page.setCookie(...cookies);
  6. Recuperar y registrar las cookies del segundo sitio web para verificarlas: const cookiesSet = await page.cookies(); console.log('Cookies establecidas en httpbin.org:', cookiesSet);
  7. Cierre el navegador: await browser.close();

Siguiendo estos pasos, puede asegurarse de que las cookies se guardan y cargan correctamente entre diferentes páginas web utilizando Puppeteer. Este método le permite mantener los estados de sesión de forma eficaz durante las tareas de Scraping web.

Para soluciones de Scraping web más avanzadas, considere la posibilidad de utilizar el navegador Puppeteer de Bright Data. Ofrece una solución integral para gestionar la infraestructura de desbloqueo automatizado, eludir los CAPTCHA y ampliar sus proyectos de Scraping sin esfuerzo.

CONFIADO POR 20,000+ CLIENTES EN TODO EL MUNDO

¿Listo para empezar?