Делаем скриншоты сайтов у себя на странице
Очень часто подымаются вопросы как при помощи PHP сделать скриншот сайтов, очень много было обсуждений на эту тему, я хочу всё же подытожить все эти дискуссии и описать способ который использую я.
Итак первое и самое главное – средствами PHP делать скриншоты сайтов нельзя!
Сделать скриншоты можно при помощи различных сервисов, их очень много, но вот хороших которые делают скриншоты в риалтайме не так уж и много, а тем более таких где самому можно указать размер скриншота.
Для своих проектов я использую сервис сайта
http://www.artviper.net
и сейчас пошагово объясню как работать с их сервисом, на сайте всё понятно расписано,но не все понимают на английском
Итак для начала идём по ссылке
http://www.artviper.net/registerAPI.php
и регистрируемся, необходимо вбить свой логин, емеил и урл сайта с которого будут идти запросы на создание скриншотов.
После этого на указанный емеил приходит письмо с ссылкой для подтверждения регистрации, после перехода по ней вам придёт ещё одно письмо, в котором рассказывается как использовать данный API и ваш персональный User ID и Secret Key.
Что бы не ходить вокруг да около, вот пример работы с их API
<?php $uID = '889d917202b3579'; $secretKey = '90acb7c0'; $url="http://webphp.ru"; $hash=md5($url.$uID.$secretKey); ?> <input type=image src="http://www.artviper.net/screenshots/screener.php?url=<? echo $url; ?>&h=190&w=200&userID=889d917202b3579&hash=<?=$hash;?>" width="200px" height="190px" alt="" name="sub"> |
теперь немного поясню
$uID -персональный id который пришёл в письме
$secretKey -секретный ключ который пришёл в письме
$url – адресс страницы которую нам нужно отскриншотить
$hash – обязательный параметр, в котором нам нужно передать MD5 хеш перечисленных переменных, обязательно соблюдать данный порядок.
Теперь дальше, в примере я вставляю скриншот прямо с их сайта, передаём нужные переменные их скрипту, помимо вышеописанных вы видите ещё h и w, что является высотой и шириной скриншота, который возвращает нам сервис(данные параметры не являются обязательными, если их не указать то сервис автоматически сформирует размер, который посчитает нужным)
А вот ещё несколько необязательных параметров, которые я не использовал, но которые могут некоторым пригодиться
&q – качество возвращаемого jpeg скриншота. можно задать значение в пределах от 30 и до 90
&d – задержка перед созданием скриншота
&sdx – ширина виртуального экрана с которого будет сделан скриншот, ну или как это правильно обозвать (разрешение монитора под которым делается скриншот) Может принимать значения 640, 800, 1024, 1280
&sdy - Тоже самое только высота.
Правильным подходом будет сохранение данных скриншотов себе на сайт, и дальнейшее использование уже со своего сервера, ну это уже личное дело каждого. Я думаю что достаточно понятно объяснил как использовать данный сервис, если у кого то остались вопросы, то я постараюсь на них ответить
Разработка интернет-магазинов, скриптов, SEO и повышение конвертации.
Ney
24 Feb, 2009
Поправьте линк на страницу этого сервиса.
Этот комментарий можно будет удалить
kostik
8 Mar, 2009
При регистрации невысылаеют некакого Secret Key только User ID пришел. Почему так? Где взять Secret Key ?
admin
13 Mar, 2009
После регистрации приходит письмо с темой Registration complete и дальше ман по работе и в самом низу
Your user information
User ID: хххх
Secret Key: хххх
если не пришло то попробуйте заново зарегиться или написать им в супорт
Зоя
23 Mar, 2009
Есть еще такой сервис – Websnapr, он тоже довольно популярен и под него есть готовые плагины для распространённых CMS (http://drupal.org/project/websnapr – например, плагин для Drupal, мы на своем бложеке его как раз используем)
JoKer
27 Mar, 2009
Спасибо, скриншоты именно то что я и искал…)
У вас я нашел всё что мне было надо, спасибо вам…)
ost
8 Apr, 2009
а скрины с flv таким образом можно делать?
yaroslav
26 Apr, 2009
Спасибо большое за материал. Начал использовать этот сервис, а то другие или не пашут или нестабильны
Marya
31 мая, 2009
интересно, а как они это делают?
прикручен C++???
DropSQL
20 Aug, 2010
Язык тут не причём
просто юзают АПИ любого браузера, для php можно тоже сделать плагин php-ff – типа того и будут Вам скрины
ckpuM
22 Nov, 2009
вот вам наглядный пример – http://paid.pix-art.ru/thumb.php
-=Zzet=-
22 Dec, 2009
Хм. А http://browsershots.org/ чем не устроил то? Если со скоростью генерации страницы все ок, плюс с каналом (это условие, при котором до снимка страница в браузерах загрузится) будет вам набор скринов. если нужна пачка итоговых скринов – то очень хороший вариант имхо.
itpomoshnik
25 Dec, 2009
хорошая функция. обязательно воспользуюсь. спасибо автору
wmaxi
1 мая, 2010
FireShot – удобное расширение Firefox для захвата страниц
Konstantin
21 Jan, 2012
Классная стать. Ссылка до сих не корректная, но на сайте легко разобраться. Инструкция по генерации ссылки кстати тоже уже другая, намного проще.