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

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

Ответ 1

Может быть полезно немного больше деталей...

Запустите 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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Возможно, вы также захотите посмотреть сценарий браузера. Есть дополнения Firefox, которые делают скриншоты, такие как screengrab (который может захватывать всю страницу, если хотите, а не только видимый бит) и вы могли бы script браузера с greasemonkey сделать скриншоты.

Ответ 5

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

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

Ответ 6

См. Webkit2png.

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

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

Ответ 7

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

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

Используйте xinit с Xvnc как X-сервер, чтобы сделать это - вам нужно будет прочитать все manpages.

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

Ответ 8

Существует команда import, но вам понадобится X и немного bash script, которые откроют окно браузера, затем сделают снимок экрана и закроют браузер.

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

Ответ 10

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

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

Задав свойства скриншота (размер, форматы файлов и т.д.), перед тем, как вы закончите с хорошим набором снимков.

Штеффен