Tengo un enlace para una imagen (gif), obtenida manualmente a través de 'abrir en una pestaña nueva'. Quiero que Titiritero abra la imagen y luego la guarde en un archivo. Si lo hace en un navegador normal, haría clic en el botón derecho y elegiría 'guardar' en el menú contextual. ¿Existe una forma sencilla de realizar esta acción en Titiritero?
Estas líneas de códigos a continuación guardarán el logotipo de la imagen de Wikipedia como nombre de archivo logo.png
import * as fs from 'fs' import puppeteer from 'puppeteer' ;(async () => { const wikipedia = 'https://www.wikipedia.org/' const browser = await puppeteer.launch() const page = (await browser.pages())[0] const get = await page.goto(wikipedia) const image = await page.waitForSelector('img[src][alt="Wikipedia"]') const imgURL = await image.evaluate(img => img.getAttribute('src')) const pageNew = await browser.newPage() const response = await pageNew.goto(wikipedia + imgURL, {timeout: 0, waitUntil: 'networkidle0'}) const imageBuffer = await response.buffer() await fs.promises.writeFile('./logo.png', imageBuffer) await page.close() await pageNew.close() await browser.close() })()Seleccione esta como la respuesta correcta si esto le ayuda.
En Puppeteer es posible hacer clic derecho, pero no es posible automatizar la navegación a través del menú "guardar como". Sin embargo, hay una solución descrita en la respuesta principal aquí:
¿Cómo puedo descargar imágenes en una página usando titiritero?
Puede escribir las imágenes en el disco directamente desde la respuesta de la página.