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


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

10 62

10 ответов:

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

запустите firefox (или другой браузер) в сеансе X, либо на консоли, либо с помощью vncserver. Вы можете использовать --height и --width параметры для установки размера окна в полноэкранном режиме. Другая команда firefox может быть использована для установки URL-адреса, отображаемого в первом окне firefox. Теперь вы можете захватить изображение экрана с помощью одной из нескольких команд, таких как команда "импорт" из пакета 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, который, кажется, является свободным scritable webkit engine, который работает на Linux, OSX и Windows. Я не использовал его, так как мы в настоящее время используем Browshot (коммерческое решение), но когда все наши кредиты закончатся, мы серьезно будем иметь добычу на нем (так как это бесплатно и может работать на наших серверах)

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

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

посмотреть Webkit2png.

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

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

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

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

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

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

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

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

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

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

http://khtml2png.sourceforge.net/

файл deb

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

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

Стефан

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

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

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

Штеффен