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

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

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 - Тоже самое только высота.


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

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

или khtml2png

и с php через командную строку:
PHP:
<?
exec('Z:\usr\local\iecapt\IECapt.exe --url=http://www.nulled.cc/ --min-width=1100 --out=nulled_snapshot.png');
?>
 
Порекомендуйте готовое ПО для поднятия такой штуки у себя.
Не знаю готового - у меня самопис (на основе оперы и виртуального дисплея).
Если интересно, могу поскрести по сусекам и выложить.
 
Не знаю готового - у меня самопис (на основе оперы и виртуального дисплея).
Если интересно, могу поскрести по сусекам и выложить.

Да, было бы здорово. Надеюсь, решение не будет совпадать с Для просмотра ссылки Войди или Зарегистрируйся.
 
Я же сказал - самопис.
Принцип простой: стартуешь Х на виртуальном дисплее, в нём запускаешь оперу, в опере открываешь сайт, делаешь скриншот, обрезаешь/уменьшаешь при помощи imagemagick и сохраняешь.
Собственно весь самопис сводился к написанию небольшого скрипта на баше для автоматизации вышеописанного процесса.

Точнее смогу сказать после праздников, так как вся кухня осталась на работе.
 
Итак первое и самое главное - средствами PHP делать скриншоты сайтов нельзя!

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

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

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

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