Появилась задачка отслеживать как меняется дизайн сайта на протяжении недели с шагом в 3часа.
Можно конечно запускать wget по расписанию, но не сильно удобно смотреть потом 100500 файлов.
После поиска по просторам инета был найден простенький способ.
Для этого нам понадобится какой-то сервер (рабочая машина) на Linux.
Для захвата изображения будем использовать програмку CutyCapt
CutyCapt is a small cross-platform command-line utility to capture WebKit’s rendering of a web page into a variety of vector and bitmap formats, including SVG, PDF, PS, PNG, JPEG, TIFF, GIF, and BMP
В итоге мы получим картинку с сайтом отрендереном движком WebKit. Однако требуется Xserver для рендера.
Для этого можно установить легковесный сервер Xvfb который имитирует работу Xserver, но без вывода результата на экран, а оставляя результат в памяти.
Итого….
Есть у нас Debian 7
Ставим cutycapt:
apt-get install cutycapt
Ставим xvfb:
apt-get install xvfb
Пускаем тестовый запрос:
sudo /usr/bin/xvfb-run --server-args="-screen 0, 1920x1080x24" /usr/bin/cutycapt --min-width=1280 --max-wait=5000 --url=http://unian.ua/ --out=screen/unian.png
На выходе получаем такую картинку
Полный размер
Осталось только прописать это действие в крон )
Небольшое пояснение к опциям строки:
-screen 0, 1920x1080x24" - размер имитируемого экрана
--min-width=1280 - минимальная ширина скриншота
--max-wait=5000 - ждем результата 5сек (зависит от интернета и мощи сервера, по умолчанию 90сек)
Про все опции можно почитать тут: http://cutycapt.sourceforge.net/