Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

252
Vistas
Titiritero page.goto (url) dentro del bucle sin esperar hasta que se cargue

Tengo urls de archivo pdf. ex:

 const filesUrl= ["http://example.com/animal.pdf", "https://example.com/fruit.pdf", "http://example.com/stars.pdf"]

Quiero descargar esos archivos y guardarlos en la carpeta de mi servidor usando titiritero.

Lo que estoy haciendo es:

  1. URL de archivos en bucle
  2. primer bucle estoy usando page.goto (url)
  3. escribir archivo usando fs.writeFile
  4. siguiente bucle

Pero tengo un error: [ERR_INVALID_CALLBACK]: la devolución de llamada debe ser una función. Recibido indefinido

Si miro el navegador, el bucle no espera hasta que la página esté completamente cargada.

este es mi código:

 const filesUrl = await page.$$eval("li.b_algo h2 a", urls => { return urls.map(url => url.href) }) // filesUrl = ["http://example.com/animal.pdf", "https://example.com/fruit.pdf", "http://example.com/stars.pdf"] for (const fileUrl of filesUrl) { try { const filepage = await page.goto(fileUrl) await fs.writeFile(Math.random() + ".pdf", await filepage.buffer()) } catch (error) { console.log('errorsadasd:', error); } } await browser.close()
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El error no está relacionado con el puppeteer , sino con fs.writeFile , que requiere una devolución de llamada como argumento, que falta, es decir, no está undefined , de ahí el error.

Intenta agregar la devolución de llamada:

 await fs.writeFile(Math.random() + ".pdf", await filepage.buffer(), () => { console.log('done writing file'); });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Intente usar writeFile, pero envuelto en una promesa:

 import fs from 'fs'; const fsPromises = fs.promises; const writeFilePromise = fsPromises.writeFile; await writeFilePromise(Math.random() + ".pdf", await filepage.buffer());
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda