Nodejs 截取网站图片
Nodejs 截取网站图片
已经在用 phantomjs 截图了。不断发现图片的质量有问题,所以除了这个截图方案还有没有其他办法?最好是 Node 系列
puppeteer +1
https://github.com/Runjuu/page2image
同样用的是 puppeteer,稍微封装了一下
不过其实直接用 puppeteer 也挺方便的…
非常感谢。有 2 个点想问一下。1 )、图片保存成功与否如何判断?因为想通过批量任务去做这个事情,像准确率高一点,做成串行,一张截取成功继续下一张。
2 )、页面会不会因为 js 或者 css 没加载好导致截图会有问题?(估计不太会有这个问题吧,因为页面加载成功后你才截图的吧?)
自己用 puppeteer 写了个 Demo。批量自动化截图并保存到文件 https://github.com/FantasticLBP/JS-KnowledgeKit/tree/master/Node/Snapshots
在 Node.js 中截取网站图片通常涉及两个主要步骤:获取网页内容和截取网页中的图片。我们可以使用 puppeteer
这个强大的库来实现这个功能。puppeteer
是一个 Node 库,提供了一个高级 API 来通过 DevTools 协议控制 Chrome 或 Chromium。
以下是一个简单的示例代码,展示如何使用 puppeteer
截取网站图片:
const puppeteer = require('puppeteer');
(async () => {
// 启动浏览器
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 访问目标网站
await page.goto('https://example.com');
// 设置视口大小(可选)
await page.setViewport({ width: 1920, height: 1080 });
// 截取整个页面并保存为图片
await page.screenshot({ path: 'example.png', fullPage: true });
// 关闭浏览器
await browser.close();
})();
在运行上述代码之前,你需要确保已经安装了 puppeteer
。你可以通过 npm 来安装它:
npm install puppeteer
这个脚本会启动一个无头 Chrome 浏览器,访问 https://example.com
,截取整个页面的截图,并将其保存为 example.png
。你可以根据需要修改 URL 和截图保存路径。
请注意,puppeteer
依赖于 Chrome 或 Chromium,因此确保你的系统上已经安装了这些浏览器之一。