2008-09-24 2 views
62

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

+0

есть еще ... – Stobor 2009-07-07 05:39:51

+0

Еще один быстрый способ сделать это - использовать затвор: Установите: * $ apt-get install shutter * Запуск: * $ shutter --web = http: //mail.ru -e * ' – 0x8BADF00D 2014-07-30 20:34:21

+0

По теме: http://softwarerecs.stackexchange.com/questions/16422/no-gui-tool-to-take-screenshots- of-websites – 2015-09-11 06:04:04

ответ

54

Чуть более подробно может быть полезно ...

Запуск 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 
+1

Это сработало хорошо, за исключением firefox `-display: 11` нужно было` --display =: 11` Но вы дали мне отличную отправную точку! Спасибо за это! – 2010-11-05 15:12:14

+0

Очень приятно. Нужно больше информации. Как с опцией --display. Как ты это узнал? Где документация для этого. Причина в том, что мне нужна программа, чтобы открыть полный экран. Когда я получаю скриншот, Firefox не полный экран, а в уменьшенном размерах окне. – shrimpwagon 2013-06-14 20:44:17

2

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

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

+0

На самом деле, я думаю, что я могу просто использовать код из этого проекта, чтобы писать свою локальную версию вместо отправки материала через браузеры (например, для компании). – ujh 2008-09-24 08:40:27

1

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

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

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

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

1

Существует импорта команда, но вы будете нуждаться в X, и немного Баш сценарий, открывающий окно браузера, затем снимок экрана и закрытие браузера.

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

5

scrot - инструмент командной строки для снятия скриншотов. См. man page и этот tutorial.

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

1

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

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

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

Штеффен

37

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

3

См. Webkit2png.

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

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

7

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

Смежные вопросы