Nodejs puppeteer 怎么保存网页上的图片?
Nodejs puppeteer 怎么保存网页上的图片?
puppeteer 怎么保存网页上的图片?不依赖别的库,自身命令里有保存图片的命令吗?
5 回复
关键词 Chrome DevTools Protocol。
Network.getResponseBody 和 Page.captureScreenshot 这两个,理论上是应该可以的。
啥意思?
获取 img 标签的 src 不就完事了么
在Node.js中使用Puppeteer保存网页上的图片,可以通过以下步骤实现:
一、环境准备
- 确保已安装Node.js和npm。
- 使用npm安装Puppeteer:
npm install puppeteer
二、代码实现
以下是一个使用Puppeteer保存网页图片的示例代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
// 等待图片加载完成
await page.waitForSelector('img');
// 抓取图片资源链接
const imageSrcs = await page.evaluate(() => {
const images = document.querySelectorAll('img');
const srcs = Array.from(images).map(img => img.src);
return srcs;
});
// 下载图片资源
for (let src of imageSrcs) {
const filename = src.split('/').pop();
const path = `./images/${filename}`;
await page.download(src, { path: path });
console.log(`图片下载成功: ${filename}`);
}
await browser.close();
})();
三、注意事项
- 确保目标网页允许图片被下载,遵守版权和隐私权。
- 在实际使用中,可能需要添加异常处理和错误日志,以提高代码的健壮性。
通过以上步骤,你可以使用Puppeteer在Node.js中保存网页上的图片。