Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

http://cutycapt.sourceforge.net/

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

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

Ответ 3

Вот лучший script с использованием 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();
});

Ответ 4

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