Делаем скриншоты сайтов у себя на странице

Очень часто подымаются вопросы как при помощи 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 - Тоже самое только высота.

Правильным подходом будет сохранение данных скриншотов себе на сайт, и дальнейшее использование уже со своего сервера, ну это уже личное дело каждого. Я думаю что достаточно понятно объяснил как использовать данный сервис, если у кого то остались вопросы, то я постараюсь на них ответить







11 Comments »

  1. avatar Ney Says:

    Поправьте линк на страницу этого сервиса.

    Этот комментарий можно будет удалить :)

  2. avatar kostik Says:

    При регистрации невысылаеют некакого Secret Key только User ID пришел. Почему так? Где взять Secret Key ?

  3. avatar admin Says:

    После регистрации приходит письмо с темой Registration complete и дальше ман по работе и в самом низу
    Your user information

    User ID: хххх
    Secret Key: хххх

    если не пришло то попробуйте заново зарегиться или написать им в супорт

  4. avatar Зоя Says:

    Есть еще такой сервис – Websnapr, он тоже довольно популярен и под него есть готовые плагины для распространённых CMS (http://drupal.org/project/websnapr – например, плагин для Drupal, мы на своем бложеке его как раз используем)

  5. avatar JoKer Says:

    Спасибо, скриншоты именно то что я и искал…)
    У вас я нашел всё что мне было надо, спасибо вам…)

  6. avatar ost Says:

    а скрины с flv таким образом можно делать?

  7. avatar yaroslav Says:

    Спасибо большое за материал. Начал использовать этот сервис, а то другие или не пашут или нестабильны

  8. avatar Marya Says:

    интересно, а как они это делают?
    прикручен C++???

  9. avatar ckpuM Says:

    вот вам наглядный пример – http://paid.pix-art.ru/thumb.php :)

  10. avatar -=Zzet=- Says:

    Хм. А http://browsershots.org/ чем не устроил то? Если со скоростью генерации страницы все ок, плюс с каналом (это условие, при котором до снимка страница в браузерах загрузится) будет вам набор скринов. если нужна пачка итоговых скринов – то очень хороший вариант имхо.

  11. avatar itpomoshnik Says:

    хорошая функция. обязательно воспользуюсь. спасибо автору :)

RSS feed for comments on this post. TrackBack URL

Leave a comment