Как стать автором
Обновить

Скриншоты сайтов своими руками

Время на прочтение 2 мин
Количество просмотров 12K
Проблема создания скриншотов web-страниц прямо на сервере встает достаточно редко, но, как говорится, метко. Хватишься иной раз, так гугль дает ссылки на какой-нибудь парсер уже существующего сервиса. Но, господа, это же не наш метод!

Покопавшись, можно найти что-нибудь типа связки xvfb (виртуальный фреймбуффер) с каким-нибудь браузером, например xvfb+opera, или khtml2png, который тянет за собой фигову тучу kde'шных либ. А ведь так хочется какого-нибудь легкого standalone скриптика...

Решив посвятить немного времени изучению вопроса, обстоятельно исследовал имеющийся инструментарий.

Итак, первое что мне попалось на глаза: webkit2png. Для работы скрипта необходим собственно Safari, который в свою очередь стоит на… Mac OS. Ну, может кому и пригодится...

Но, мир полон энтузиастов, и я нашел порт этого скрипта на нормальные никсы с использованием Qt и Python — webkit2png.py. Для работы нам потребуются всего 2 библиотеки: libqt4-webkit и python-qt4.
Скрипт имеет следующие аргументы:

-x, --xvfb
Стартует xvfb. По умолчанию, не используется.

-g, --geometry
Задает размеры окна виртуального браузера. По умолчанию, выставлен параметр 0, что означает autodetect.

-o, --output
Записывает полученный скриншот в указанный файл.

-f, --format
Формат изображения. По умолчанию, png.

--scale
Ресайз изображения.

--aspect-ratio
Задает пропорции. Из возможных значений: «ignore» (по умолчанию), «keep», «expand».

-t, --timeout
Выставляет таймаут запроса. По умолчанию, не используется.

--debug
Позволяет проследить процесс создания изображения. По умолчанию, не используется.

Пример вызова:
python webkit2png.py http://habrahabr.ru -o habra.png -g 1024 768


В процессе поиска скриптов, нашлись еще два (mozgrab и html2jpg), написанные на perl и использующие mozilla. Они оказались довольно старыми и, на мой взгляд, неудобными. Дальнейшие поиски решено было бросить, так как уже найдено оптимальное решение.
Теги:
Хабы:
+84
Комментарии 34
Комментарии Комментарии 34

Публикации

Истории

Ближайшие события

DI CONF SMM — большая конференция по соцсетям в России
Дата 2 марта
Время 09:30 – 18:00
Место
Краснодар Онлайн
Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн