Принимая скриншот веб-сайта, серверный сервер на арендованном Linux сервере, бесплатно

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

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

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

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

http://cutycapt.sourceforge.net/

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

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

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

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