Программа командной строки для создания скриншотов сайта (в Linux)

Что такое хороший инструмент командной строки для создания скриншотов веб-сайтов в Linux? Мне нужно автоматически создавать скриншоты сайтов без участия человека. Единственный инструмент, который я нашел, был khtml2png, но мне интересно, есть ли другие, которые не основаны на khtml (т.е. имеют хорошую поддержку JavaScript,...).

10 ответов

Решение

Еще немного подробностей может быть полезно...

Запустите Firefox (или другой браузер) в сеансе X, либо на консоли, либо с помощью vncserver. Вы можете использовать --height а также --width варианты, чтобы установить размер окна на весь экран. Другая команда firefox может использоваться для установки URL, отображаемого в первом окне firefox. Теперь вы можете получить изображение экрана с помощью одной из нескольких команд, таких как команда "import" из пакета Imagemagick, или используя gimp, или fbgrab, или xv.

#!/bin/sh

# start a server with a specific DISPLAY
vncserver :11 -geometry 1024x768

# start firefox in this vnc session
firefox --display :11

# read URLs from a data file in a loop
count=1
while read url
do
    # send URL to the firefox session
    firefox --display :11 $url

    # take a picture after waiting a bit for the load to finish
    sleep 5
    import -window root image$count.jpg

    count=`expr $count + 1`
done < url_list.txt

# clean up when done
vncserver -kill :11

Попробуйте хороший небольшой инструмент CutyCapt, который зависит только от Qt и QtWebkit.;)

Взгляните на PhantomJS, который, кажется, представляет собой бесплатный скриптируемый движок Webkit, работающий в Linux, OSX и Windows. Я не использовал его, так как в настоящее время мы используем Browshot (коммерческое решение), но когда все наши кредиты закончатся, у нас будет серьезная добыча (так как он бесплатный и может работать на наших серверах)

scrot - это инструмент командной строки для создания скриншотов. Смотрите справочную страницу и этот учебник.

Вы также можете посмотреть на сценарии браузера. Существуют надстройки Firefox, которые делают снимки экрана, такие как снимок экрана (который может захватывать всю страницу, если хотите, а не только видимый бит), и вы можете затем написать сценарий в браузере с помощью greasemonkey, чтобы сделать снимки экрана.

Смотрите Webkit2png.

Я думаю, что это то, что я использовал в прошлом.

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

Я знаю, что это не инструмент командной строки, но вы можете легко написать что-нибудь для использования http://browsershots.org/ Не очень полезно для приложений, не размещенных на внешних IP-адресах.

Тем не менее, отличный инструмент.

Я не знаю ничего специально созданного, я уверен, что с движком gecko можно что-то сделать для рендеринга в png-файл вместо экрана...

Или вы можете запустить Firefox в полноэкранном режиме на выделенном экземпляре VNC-сервера и использовать захват экрана, чтобы сделать снимок экрана. Полноэкранный режим = минимальный хром, экземпляр VNC-сервера = нет видимого пользовательского интерфейса + вы можете выбрать разрешение.

Для этого используйте xinit с Xvnc в качестве X-сервера - вам нужно прочитать все справочные страницы.

Недостатком является то, что размер скриншота всегда одинаковый, размер не меняется в зависимости от веб-страницы...

http://khtml2png.sourceforge.net/

Файл deb

работал на моем Ubuntu после установки libkonq4 ... но вам, возможно, придется покрыть другие зависимости.

Я думаю, что поддержка JavaScript может быть лучше сейчас!

Stephan

Существует команда импорта, но вам понадобится X и небольшой скрипт bash, который откроет окно браузера, затем сделает снимок экрана и закроет браузер.

Вы можете найти больше информации здесь, или просто набрать import --help в оболочке;)

Не для командной строки, но, по крайней мере, для использования в пакетной операции для большего набора URL-адресов, вы можете использовать Firefox с его аддоном fireshot (лицензионная версия?).

  1. Открывать вкладки для всех URL-адресов в вашем наборе (например, "открывать вкладки для всех закладок в этой папке...").
  2. Затем в fireshot запустить "Захват всех вкладок"
  3. В окне редактирования затем вызвать "выбрать все снимки -> сохранить все снимки"

Установив свойства снимка экрана (размер, формат файла и т. Д.), Прежде чем закончить с хорошим набором файлов снимков.

Штеффен

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