Сгенерированные сервером веб-скриншоты? - PullRequest
7 голосов
/ 23 сентября 2008

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

Ответы [ 8 ]

6 голосов
/ 23 сентября 2008

ЕСЛИ ваш сервер - Mac , тогда я рекомендую webkit2png - короткую программу на python, использующую API-интерфейс Objective-C WebKit для визуализации URL , Лично я использую его в сочетании с WWW :: Mechanize , чтобы обойти свой сайт разработки и сделать скриншоты каждой страницы - это полезно для тестирования функциональности, показа клиентов и поддержания скриншотов в актуальном состоянии. Полученный снимок экрана идеален, но иногда очень высок для длинных прокручиваемых страниц.

ЕСЛИ на вашем сервере установлены не-голые Linux дистрибутив с установленным KDE, тогда вы можете попробовать khtml2png . Я сам не пробовал, но увидел, что это упомянуто на странице webkit2png.

6 голосов
/ 23 сентября 2008

Возможно, вы также захотите взглянуть на webkit , он известен тем, что его легче встраивать (он используется Adobe для AIR, Google для Chrome, Apple для iPhone ...), а затем другими рендеринг движков. Это может занять немного больше времени для настройки, но это будет намного более стабильно, чем какой-то хак, который запустит веб-браузер и сделает снимок экрана.

3 голосов
/ 12 июня 2012

PhantomJS - это браузер на базе WebKit без командной строки (с командной строкой), который можно легко написать для сохранения скриншота веб-страницы.

2 голосов
/ 23 сентября 2008

Я использую сервис http://webthumb.bluga.net для создания миниатюр. Прочные, мощные, простые в использовании и очень разумные цены. У меня есть сайт с высоким трафиком, использующий этот сервис, и он работает очень хорошо. Учитывая сложность создания надежного веб-сервиса для скриншотов, приятно, что кто-то другой выполняет тяжелую работу.

2 голосов
/ 23 сентября 2008

Да, это то, что нужно. Я делаю это в asp.net и фактически создаю объект WebBrowser, который доступен в библиотеках классов .Net Framework для создания снимка экрана.

2 голосов
/ 23 сентября 2008

Вам действительно нужно, чтобы сервер запустил соответствующий веб-браузер и сделал снимок экрана приложения с соответствующими библиотеками. Apache не будет отображать страницу для вас, поэтому у вас должно быть программное обеспечение, которое будет.

0 голосов
/ 14 января 2009

виртуальный фреймбуфер X-сервер

Я бы скорее рекомендовал XVFB (виртуальный фреймбуферный X-сервер) - лучшее решение для создания снимков экрана безголового сервера. Виртуальный фреймбуферный X-сервер xvfb предоставляет X-сервер, который может работать на машинах без аппаратного дисплея и физических устройств ввода. Я использую это на своем сервере для тестирования URL-адресов и делаю снимок экрана. Мы используем Ubuntu & XVFB + FIREFOX. Работает нормально. Изменить в соответствии с вашими потребностями. Посмотрите на эти статьи. Это может быть использовано для вас.

http://www.semicomplete.com/blog/geekery/xvfb-firefox.html

http://linux.about.com/cs/linux101/g/xvfb.htm

http://www.xfree86.org/4.0.1/Xvfb.1.html

0 голосов
/ 23 сентября 2008

Несвободным решением для Java является WebRenderer . Интересная особенность: он может эмулировать браузеры Safari, IE или Firefox при рендеринге. У них есть настольная версия и версия безголового сервера. Также у них есть пример кода, показывающий, как сделать снимок экрана веб-страницы.

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