Puppeteer 保存在浏览器中打开的图像

Eug*_*sky 0 javascript web-scraping google-chrome-headless puppeteer

我有一个 (gif) 图像的链接,通过“在新选项卡中打开”手动获取。我希望 Puppeteer 打开图像,然后将其保存到文件中。如果在普通浏览器中执行此操作,我会单击右键并从上下文菜单中选择“保存”。在 Puppeteer 中是否有一种简单的方法来执行此操作?

Edi*_*nto 5

下面的这些代码行会将维基百科图像徽标保存为文件名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()
})()
Run Code Online (Sandbox Code Playgroud)

如果这对您有帮助,请选择它作为正确答案。