如何获得另一个网站的 screenshot/preview

How to get a screenshot/preview of another website

有什么方法可以获取其他网站页面的屏幕截图吗?

例如:您在输入中引入 url,按回车键,然后脚本会为您提供您输入的网站的屏幕截图。我设法使用无头浏览器做到这一点,但我担心这可能需要太多的资源和时间来启动。假设每次使用输入时 phantomjs 无头浏览器都需要获取新数据,我研究了 HotJar,它做的事情与我正在寻找的类似,但它为您提供了一个必须放入页眉的脚本,这对我来说很好,之后,你会得到一个预览,它是如何工作的?如何复制它?

你可以用 puppeteer

安装方式:npm i puppeteer

将以下代码保存到example.js

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

和 运行 它与: node example.js

你想要你的页面还是其他人的页面的打印屏幕?

自己的页面

使用 puppeteer 或 phantomJS 与 Beverly 构建您的网站,这样您只会 运行 它发生变化时,并随时准备好屏幕截图。

国外页面

您可以访问它(所有者 运行 是您的脚本)

要么尝试进入他的构建管道,然后使用上面的解决方案。

或使用此解决方案Using HTML5/Canvas/JavaScript to take in-browser screenshots

您没有任何访问权限

使用一些长时间的 运行ning 过程,当被问到时会给你屏幕截图。

假设一台服务器有一个 URL 端点:screenshot.example.com?facebook.com.

long-运行ning 服务器有一个 puppeteer/phantomJS 实例准备好在给定 URL 时运行,它将淹没该页面,获取屏幕截图并将其发回。浏览器实际上会将其视为缓慢的 ping 图片请求。