Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
¿Cómo administrar la sesión de inicio de sesión a través de Chrome sin cabeza?

Quiero crear un raspador que:

  1. abre un navegador sin cabeza,
  2. va a una url ,
  3. inicia sesión (hay oauth de vapor),
  4. llena algunas entradas,
  5. y hace clic en 2 botones.

Mi problema es que cada nueva instancia de navegador sin cabeza borra mi sesión de inicio de sesión, y luego necesito iniciar sesión una y otra vez...

¿Cómo guardarlo a través de instancias? (usando titiritero con cromo sin cabeza)

¿O cómo puedo abrir una instancia sin cabeza de Chrome ya registrada? (si ya he iniciado sesión en mi ventana principal de Chrome)

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Hay una opción para guardar los datos del usuario usando la opción userDataDir al iniciar titiritero. Esto almacena la sesión y otras cosas relacionadas con el lanzamiento de Chrome.

 puppeteer.launch({ userDataDir: "./user_data" });

No entra en gran detalle, pero aquí hay un enlace a los documentos: https://pptr.dev/#?product=Puppeteer&version=v1.6.1&show=api-puppeteerlaunchoptions

over 4 years ago · Santiago Trujillo Relatório

0

En puppeter tienes acceso a las cookies de sesión a través page.cookies() .

Entonces, una vez que inicie sesión, puede obtener cada cookie y guardarla en un archivo json:

 const fs = require(fs); const cookiesFilePath = 'cookies.json'; // Save Session Cookies const cookiesObject = await page.cookies() // Write cookies to temp file to be used in other profile pages fs.writeFile(cookiesFilePath, JSON.stringify(cookiesObject), function(err) { if (err) { console.log('The file could not be written.', err) } console.log('Session has been successfully saved') })

Luego, en su próxima iteración, justo antes de usar page.goto() , puede llamar a page.setCookie() para cargar las cookies del archivo una por una:

 const previousSession = fs.existsSync(cookiesFilePath) if (previousSession) { // If file exist load the cookies const cookiesString = fs.readFileSync(cookiesFilePath); const parsedCookies = JSON.parse(cookiesString); if (parsedCookies.length !== 0) { for (let cookie of parsedCookies) { await page.setCookie(cookie) } console.log('Session has been loaded in the browser') } }

Consulte los documentos:

  • https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagecookiesurls
  • https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagesetcookiecookies
over 4 years ago · Santiago Trujillo Relatório

0

Para obtener una versión de la solución anterior que realmente funciona y no depende de jsonfile (en lugar de usar el fs más estándar), consulte esto:

Configuración:

 const fs = require('fs'); const cookiesPath = "cookies.txt";

Leyendo las cookies (ponga este código primero):

 // If the cookies file exists, read the cookies. const previousSession = fs.existsSync(cookiesPath) if (previousSession) { const content = fs.readFileSync(cookiesPath); const cookiesArr = JSON.parse(content); if (cookiesArr.length !== 0) { for (let cookie of cookiesArr) { await page.setCookie(cookie) } console.log('Session has been loaded in the browser') } }

Escribiendo las cookies:

 // Write Cookies const cookiesObject = await page.cookies() fs.writeFileSync(cookiesPath, JSON.stringify(cookiesObject)); console.log('Session has been saved to ' + cookiesPath);
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda