Создание полноразмерных скриншотов web сайтов
Создание полноразмерных скриншотов сайтов с помощью cutycapt
— xvfb — Виртуальный фреймбуффер (Fake Xserver) — CutyCapt — кроссплатформенная утилита для рендеринга web-страниц — php — для веб-интерфейса
Все это было установлено на Debian из стандартных пакетов без каких либо танцев с бубном через менеджер пакетов, единственное пришлось поискать что то для интерфейса на сайт. Было найдено 2 варианта. но они мне не понравились и пришлось самому накарябать простенький интерфейс, потом немного привести в божеский вид и намано, как минимум это работает и не закидывает при создании скрина на новую страницу.
Для проверки работы нужно выполнить комманду
xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/cutycapt --url=http://www.yandex.ru --min-width=1440 --out=/var/www/sites/shot/html/net.jpg
данная команда сделает скрин с яндекса шириной 1440 в формате jpg по пути out
<!DOCTYPE html>
<html>
<head>
<title>Скриншот страницы сайта онлайн</title>
<meta http-equiv=Refresh content="text/html; charset=Cyrillic-1251">
</head>
<body>
<center><h1>Создание скриншотов сайтов онлайн</h1></center>
<div>
<form method="POST" action="" enctype="multipart/form-data" >
<div>
<input name="url" type="url" size="45" maxlength="45" value="http://www.yandex.ru">
</div><div>
Ширина изображения
<select id="width" name="width">
<option value="1024" selected="selected">1024</option>
<option value="1280" >1280</option>
<option value="1440" >1440</option>
<option value="1680" >1680</option>
<option value="1920" >1920</option>
</select>
</div>
<div>
<p>Формат вывода скриншота</p>
<select id="mime" name="mime">
<option value="jpg" selected="selected">JPG</option>
<option value="png" >PNG</option>
<option value="pdf" >PDF</option>
<option value="svg" >SVG</option>
</select>
<input type="submit" value="Создать" />
</div>
</form>
</div>
<?
if (isset($_POST['url'])) { $url = $_POST['url']; if ($url == '') { unset($url);} }
if (isset($_POST['width'])) { $width=$_POST['width']; if ($width =='') { unset($width);} }
if (isset($_POST['mime'])) { $mime=$_POST['mime']; if ($mime =='') { unset($mime);} }
if (empty($url)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Введите URL страницы");
}
$site = parse_url($_POST['url']);
$filename = str_ireplace('.','_',$site["host"]).".".$mime;
exec('xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/cutycapt --url='.$url.' --min-width='.$width.' --out=/var/www/sites/books/books.kuper-spb.ru/subdomains/www/html/'.$filename);
$widthscr = 400;
if ($mime == jpg || $mime == png) {
echo 'Скриншот: <a href="/'.$filename.'" target="_blank"> '.$filename.' </a> <br> ';
echo '<img src="'.$filename.'" width="'.$widthscr.'">';
}
else {echo 'Скриншот: <a href="/'.$filename.'" target="_blank"> '.$filename.' </a> <br> ';
}
?>
</body>
</html>
http://forum.cms-php.ru/threads/cutycapt.567/
Демка у нас на сайте
|