Снимок экрана сайта, на стороне сервера, на арендованном сервере Linux, бесплатно - PullRequest
10 голосов
/ 27 июля 2010

Хорошо, сейчас я не могу позволить себе платить за любую услугу. Я хочу иметь возможность делать снимки экрана с помощью моего арендованного сервера на базе Linux и выводить их на экран.

Я знаю, что существует множество служб, которые делают это, но обычно они имеют ограничения или водяные знаки, или вам нужно подождать, пока ваш снимок экрана будет взят из очереди.

Можно ли как-нибудь сам сделать скриншоты и, может быть, позже кешировать их или что-то еще? Я использую PHP, но я не ограничен этим; Я просто на сервере Linux, поэтому соответствующие функции GD не будут работать. Помогите! :)

Ответы [ 4 ]

10 голосов
/ 19 октября 2011

PhantomJs - это решение

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);
}
9 голосов
/ 27 июля 2010

http://cutycapt.sourceforge.net/

CutyCapt - это небольшая межплатформенная утилита командной строки для захвата рендеринга WebKit веб-страницы в различные векторные и растровые форматы, включая SVG, PDF, PS, PNG, JPEG, TIFF, GIF и BMP.

PHP-api отсутствует, но вы всегда можете использовать его через функции PHP exec.

5 голосов
/ 20 апреля 2012

Вот лучший скрипт, использующий 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();
});
1 голос
/ 18 августа 2017

Одно из решений 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();
})();
...