Захватить веб-страницу с помощью cutycapt или PhantomJs?

Я хочу автоматически сделать скриншот из моего веб-сайта с помощью crontab. Я установил cutycapt на моем сервере. Но я получаю эту ошибку при запуске:

введите описание изображения здесь

Мой вопрос:

  1. Что не так с этой ошибкой?
  2. Как лучше всего сделать снимок экрана моей веб-страницы, cutycapt или phantomjs?
  3. Что нужно для использования cutycapt или phantomjs? Я не понимаю, как работает cutycapt или phantomjs.

Буду благодарен, если найдется кто-нибудь, кто сможет мне это объяснить. Благодарю.

2 ответа

Решение

Чтобы заставить его работать в "безголовой" среде, я использовал xvfb, я уже установил xserver, но я не верю, что это необходимо. Я не намеренно устанавливал фантомы, но это может быть зависимость.

sudo apt-get install xvfb cutycapt

Затем я запустил cutycapt в кадровом буфере xvfb и отправил несколько аргументов. Это взято со страницы использования кузницы исходного кода cutycapt.

xvfb-run --server-args="-screen 0, 1024x768x24" cutycapt --url=website.com --out=image.png

Я также написал небольшой сценарий, чтобы сделать его еще проще. Он спрашивает, какую страницу загрузить. сохраняет его как URL-адрес

#!/bin/bash
echo what is the website you would like to grab?
read url
echo grabbing $url please wait...
xvfb-run --server-args="-screen 0, 1024x768x24" cutycapt --url=$url --out=$url.png
echo done, image is $url.png

Сообщение об ошибке означает, что CutyCapt нужен работающий X-сервер. PhantomJS 2.x безголовый, ему не нужен запущенный X-сервер.

Другие вопросы по тегам