» Создание полноразмерных скриншотов web сайтов


Создание полноразмерных скриншотов 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/

Демка у нас на сайте


 
Design By Kuper