Довольно полезным сервисом является создание полноразмерных скриншотов web-ресурсов.
Реализуем этот сервис буквально за 5 минут.
1) Создание полноразмерных скриншотов сайтов (полный скриншот по длине и ширине, а не захват окна браузера)
2) веб-интерфейс
— ОС — Ubuntu 10.04
— xvfb — Виртуальный фреймбуффер (Fake Xserver)
— CutyCapt — кроссплатформенная утилита для рендеринга web-страниц
— php — для веб-интерфейса
aptitude install xvfb
aptitude install subversion libqt4-webkit libqt4-dev g++
mkdir /usr/ccapt
cd /usr/ccapt
svn co cutycapt.svn.sourceforge.net/svnroot/cutycapt
cd cutycapt/CutyCapt
qmake
make
xvfb-run --server-args="-screen 0, 1024x768x24" /usr/ccapt/cutycapt/CutyCapt/CutyCapt --url=http://habrahabr.ru --out=/var/www/images/habrahabr_ru.jpg
Вот таким, довольно легким способом мы получили удобный скриншотер сайтов, который отлично делает скриншоты сайтов с Flash, и создает скриншот в полный размер, а не обрезает его по размеру окна браузера.
Все действия проделанные в данной заметке реализованы тут.
Временно недоступен.
Спасибо за внимание.
UPD:
Само по себе создание скриншота довольно ресурсоемкое и требуются значительные временные затраты на создание скриншота. (естественно, зависит и от канала запрашиваемого сайта).
Данный пример расположен на слабеньком VDS, и может не выдержать нагрузки.
Посему, прошу не сетовать, если пример будет недоступен.
UPD2:
Мой слабенький VDS, к сожалению, не осиливает такой нагрузки, поэтому, вернее всего пример будет недоступен.
Реализуем этот сервис буквально за 5 минут.
Задачи:
1) Создание полноразмерных скриншотов сайтов (полный скриншот по длине и ширине, а не захват окна браузера)
2) веб-интерфейс
Технологии:
— ОС — Ubuntu 10.04
— xvfb — Виртуальный фреймбуффер (Fake Xserver)
— CutyCapt — кроссплатформенная утилита для рендеринга web-страниц
— php — для веб-интерфейса
Реализация:
— Установка ПО
1. Установка xvfb
aptitude install xvfb
2. Установка CutyCapt
2.1 Сперва устанавливаем Subversion.
aptitude install subversion libqt4-webkit libqt4-dev g++
2.2 После установки SVN создаем директорию для CutyCapt и скачиваем исходники:
mkdir /usr/ccapt
cd /usr/ccapt
svn co cutycapt.svn.sourceforge.net/svnroot/cutycapt
Далее приступим к сборке:
cd cutycapt/CutyCapt
qmake
make
Проверяем работу в консоли
xvfb-run --server-args="-screen 0, 1024x768x24" /usr/ccapt/cutycapt/CutyCapt/CutyCapt --url=http://habrahabr.ru --out=/var/www/images/habrahabr_ru.jpg
— Веб-интерфейс
3.1 Напишем простой php-скрипт для создания скриншотов
<? // Директория для изображений $path = '/var/www/images/'; // URL директории с изображениями на нашем сайте $web = 'http://kih.kz/images/'; function screenshot($source,$filename) { system('xvfb-run --server-args="-screen 0, 1024x768x24" /usr/ccapt/cutycapt/CutyCapt/CutyCapt --url=http://'.$source.' --out=/var/www/images/'.$filename); } if(!isset($_POST['url'])) { print '<html>'. '<head>'. '<title>Полноразмерный скриншот сайта</title>'. '</head>'. '<body>'; print '<form action="" method="post">'. 'URL:<br />'. '<input name="url" type="text" value="http://">'. '<input type="submit" value="Send">'. '</form>'; print '</body>'. '</html>'; } else { // Будем делать скриншот главной страницы сайта. Берем из url только host $site = parse_url($_POST['url']); // Заменяем точку в доменном имени на знак нижнего подчеркивания $filename = str_ireplace('.','_',$site["host"]).'.jpg'; // Проверяем существование файла скриншота if(file_exists($path.$filename)) { // Если скриншоту меньше суток - новый не делаем if (system('find '.$path.' -type f -name '.$filename.' -mtime -1')) { print 'Извините, скриншот данного сайта уже существует и сделан в посление сутки!<br />'; print '<a href="'.$web.$filename.'">'.$web.$filename.'</a>'; } else { screenshot($site["host"],$filename); print '<a href="'.$web.$filename.'">'.$web.$filename.'</a>'; } } else { screenshot($site["host"],$filename); print '<a href="'.$web.$filename.'">'.$web.$filename.'</a>'; } } ?>
Вывод:
Вот таким, довольно легким способом мы получили удобный скриншотер сайтов, который отлично делает скриншоты сайтов с Flash, и создает скриншот в полный размер, а не обрезает его по размеру окна браузера.
Пример:
Временно недоступен.
Спасибо за внимание.
UPD:
Само по себе создание скриншота довольно ресурсоемкое и требуются значительные временные затраты на создание скриншота. (естественно, зависит и от канала запрашиваемого сайта).
Данный пример расположен на слабеньком VDS, и может не выдержать нагрузки.
Посему, прошу не сетовать, если пример будет недоступен.
UPD2:
Мой слабенький VDS, к сожалению, не осиливает такой нагрузки, поэтому, вернее всего пример будет недоступен.