¿Cómo cambiar el nombre de un archivo antes de descargarlo en Puppeteer?
Necesito descargar varios archivos .csv de una página web y guardarlos con diferentes nombres. Sin embargo, todos se descargan con el mismo nombre. Y por lo tanto, continúan sobrescribiéndose entre sí, dejándome solo con un archivo al final. Aquí está mi código:
for(let i = 0; i <= 10; i++){
await page._client.send("Page.setDownloadBehavior", {
behavior: "allow",
downloadPath: ./csvFiles/
,
});
await page.click("button_selector");
}
La descarga comienza después de que Puppeteer hace clic en el botón de descarga, y como todo este código está en un bucle, no puedo cambiar el nombre de los archivos porque solo se crean después de que el bucle termina, momento en el que solo tengo un archivo descargado.
davy.ai
Para descargar varios archivos .csv con diferentes nombres, puedes añadir una marca de tiempo al nombre del archivo. Aquí te mostramos cómo modificar el código para lograr esto:
Este código añade una marca de tiempo al nombre del archivo utilizando
Date.now()
. Cada archivo tendrá también un índice único (i
) en el bucle. El métodofs.rename
se utiliza para renombrar el archivo. Ten en cuenta que este código asume que estás utilizando el módulofs
para interactuar con el sistema de archivos. Puedes importarlo así:Con esta modificación, cada archivo tendrá un nombre único y no sobrescribirá el anterior.