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

Статус
В этой теме нельзя размещать новые ответы.

terkin

Мой дом здесь!
Регистрация
9 Дек 2006
Сообщения
513
Реакции
200
Очень часто подымаются вопросы как при помощи PHP сделать скриншот сайтов, очень много было обсуждений на эту тему, я хочу всё же подытожить все эти дискуссии и описать способ который использую я.

Итак первое и самое главное - средствами PHP делать скриншоты сайтов нельзя!

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

Для своих проектов я использую сервис сайта

и сейчас пошагово объясню как работать с их сервисом, на сайте всё понятно расписано,но не все понимают на английском :)
Итак для начала идём по ссылке

и регистрируемся, необходимо вбить свой логин, емеил и урл сайта с которого будут идти запросы на создание скриншотов.
После этого на указанный емеил приходит письмо с ссылкой для подтверждения регистрации, после перехода по ней вам придёт ещё одно письмо, в котором рассказывается как использовать данный API и ваш персональный User ID и Secret Key.

Что бы не ходить вокруг да около, вот пример работы с их API
теперь немного поясню
$uID -персональный id который пришёл в письме
$secretKey -секретный ключ который пришёл в письме
$url - адресс страницы которую нам нужно отскриншотить
$hash - обязательный параметр, в котором нам нужно передать MD5 хеш перечисленных переменных, обязательно соблюдать данный порядок.

Теперь дальше, в примере я вставляю скриншот прямо с их сайта, передаём нужные переменные их скрипту, помимо вышеописанных вы видите ещё h и w, что является высотой и шириной скриншота, который возвращает нам сервис(данные параметры не являются обязательными, если их не указать то сервис автоматически сформирует размер, который посчитает нужным)

А вот ещё несколько необязательных параметров, которые я не использовал, но которые могут некоторым пригодиться

&q - качество возвращаемого jpeg скриншота. можно задать значение в пределах от 30 и до 90
&d - задержка перед созданием скриншота
&sdx - ширина виртуального экрана с которого будет сделан скриншот, ну или как это правильно обозвать (разрешение монитора под которым делается скриншот) Может принимать значения 640, 800, 1024, 1280
&sdy - Тоже самое только высота.


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

PHP_Master

Хранитель порядка
Регистрация
3 Фев 2008
Сообщения
2.639
Реакции
601
Небольшой оффтоп: если имеется собственный сервер или VPS и необходимость делать тумбы в большом кол-ве, лучше поднять такой сервис у себя - не будешь ни от кого зависеть и никаких заморочек с функционированием стороннего сервиса, очередью, скачиванием тумб к себе, пропажам на канале и т.п.
 
S

skurudo

Прохожие
Небольшой оффтоп: если имеется собственный сервер или VPS и необходимость делать тумбы в большом кол-ве, лучше поднять такой сервис у себя - не будешь ни от кого зависеть и никаких заморочек с функционированием стороннего сервиса, очередью, скачиванием тумб к себе, пропажам на канале и т.п.

Порекомендуйте готовое ПО для поднятия такой штуки у себя.
 

polyetilen

Заблокирован
Регистрация
10 Авг 2006
Сообщения
810
Реакции
475
Для поднятия такого сервиса подойдёт iecap

или khtml2png

и с php через командную строку:
PHP:
<?
exec('Z:\usr\local\iecapt\IECapt.exe --url=http://www.nulled.cc/ --min-width=1100 --out=nulled_snapshot.png');
?>
 

PHP_Master

Хранитель порядка
Регистрация
3 Фев 2008
Сообщения
2.639
Реакции
601
Порекомендуйте готовое ПО для поднятия такой штуки у себя.
Не знаю готового - у меня самопис (на основе оперы и виртуального дисплея).
Если интересно, могу поскрести по сусекам и выложить.
 
S

skurudo

Прохожие
Не знаю готового - у меня самопис (на основе оперы и виртуального дисплея).
Если интересно, могу поскрести по сусекам и выложить.

Да, было бы здорово. Надеюсь, решение не будет совпадать с Для просмотра ссылки Войди или Зарегистрируйся.
 

PHP_Master

Хранитель порядка
Регистрация
3 Фев 2008
Сообщения
2.639
Реакции
601
Я же сказал - самопис.
Принцип простой: стартуешь Х на виртуальном дисплее, в нём запускаешь оперу, в опере открываешь сайт, делаешь скриншот, обрезаешь/уменьшаешь при помощи imagemagick и сохраняешь.
Собственно весь самопис сводился к написанию небольшого скрипта на баше для автоматизации вышеописанного процесса.

Точнее смогу сказать после праздников, так как вся кухня осталась на работе.
 

XeonN

Постоялец
Регистрация
13 Ноя 2006
Сообщения
367
Реакции
154
Итак первое и самое главное - средствами PHP делать скриншоты сайтов нельзя!

Ну средствами PHP нет а вот с помошью php-gtk-2.х запросто, нужно скомпилировать с поддержкой --with-mozembed

Ссылка в тему:
Для просмотра ссылки Войди или Зарегистрируйся

Да где то у меня есть класс под это дело но искать долго если сильно надо будет найду, с phpclasses скачан :)
 

oneathome

Участник
Регистрация
6 Фев 2007
Сообщения
158
Реакции
5
3D где нибудть делают

Где делают 3D скриншоты
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху