在Linux租用的服务器上免费获取服务器端的网站屏幕截图

时间:2010-07-27 11:09:17

标签: php linux web screenshot server-side

好的,现在我无法支付任何服务的费用。我希望能够使用我的租用服务器(基于Linux)获取屏幕截图,并将其输出到屏幕上。

我知道有很多服务可以做到这一点,但它们通常有限制或水印,或者您必须等待从队列中截取屏幕截图。

有没有办法自己截取屏幕截图,以后可能会缓存它们或任何东西?我正在使用PHP,但我不仅限于此;我只是在Linux服务器上,所以GD的适当功能不起作用。救命! :)

5 个答案:

答案 0 :(得分:10)

PhantomJs is the solution

if(phantom.state.length === 0){
  phantom.state = '0_home';
  phantom.open('http://www.mini.de');
}
else if(phantom.state === '0_home'){
  phantom.viewportSize = {width: 800, height: 600};
  phantom.sleep(2000);
  phantom.render('home.png');
  phantom.exit(0);
}

答案 1 :(得分:9)

http://cutycapt.sourceforge.net/

  

CutyCapt是一个小型跨平台命令行实用程序,用于捕获WebKit将网页呈现为各种矢量和位图格式,包括SVG,PDF,PS,PNG,JPEG,TIFF,GIF和BMP。 / p>

没有PHP-api,但您可以随时通过PHP的exec函数使用它。

答案 2 :(得分:5)

这是一个使用phantomJS 1.5的更好的脚本

var page = require('webpage').create();

page.open('http://www.google.com', function() {

    page.viewportSize = {width: 1024, height: 768};
    page.render('screenshot.png');
    phantom.exit();
});

答案 3 :(得分:1)

2017年的解决方案之一:

https://github.com/GoogleChrome/puppeteer

示例:

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'});

browser.close();
})();

答案 4 :(得分:0)

由于您拥有自己的Linux服务器,因此最好的方法是不受限制地运行自己的屏幕快照服务。 这是在服务器上运行它的简单解决方案: https://github.com/filovirid/screenshot_server

它创建一个API,以便您可以从任何地方访问它。