Скриншоты веб-страницы с PHP? - PullRequest
4 голосов
/ 26 марта 2009

Я знаю, что нет прямого способа сделать снимок экрана веб-страницы с помощью PHP. Какой самый простой способ сделать это? Существуют ли какие-либо инструменты командной строки, которые могли бы сделать это, что я мог бы выполнить из сценария PHP (я думаю, что-то, что будет работать в ОС NIX (OS X и / или Linux в частности)?

Редактировать: Или, может быть, какой-то веб-сервис, к которому я мог бы получить доступ через SOAP или REST, или ...

Редактировать # 2: я нашел связанный вопрос , обсуждающий вариант CLI, но я все равно был бы открыт для других методов, если кто-нибудь что-нибудь знает.

Ответы [ 6 ]

1 голос
/ 29 июля 2009

См. webkit2png для программы командной строки OSX, которая делает это.

На странице также упоминаются альтернативы Linux.

[править]: wkhtml2image - самый новый ребенок в городе, и он работает лучше, чем все, что я когда-либо использовал.

[edit2]: По состоянию на 2014 год, PhantomJS , похоже, является наиболее подходящим вариантом, так как у него есть новейшая версия альтернатив, которую я знаю.

1 голос
/ 26 марта 2009

html2ps неплохо справляется с относительно простыми страницами и требует очень мало внешних двоичных файлов, что означает, что его очень легко установить / использовать. Если вы контролируете страницы, которые будете захватывать, тогда вы сможете убедиться, что они будут правильно отображаться в html2ps. Однако, если вы надеетесь захватить произвольные URL-адреса, я не уверен, что PHP-порт HTML2PS подходит для этой задачи. Это также не самая быстрая вещь в мире (ожидайте время рендеринга в секундах для сложных страниц), но это не имеет значения для некоторых приложений.

1 голос
/ 26 марта 2009
0 голосов
/ 20 августа 2014

Можно получить изображение сайта в кодировке base64, используя API скорости страниц в Google. Вы можете указать настольный или мобильный просмотр, но вы можете ограничить изображение определенного размера.

0 голосов
/ 26 марта 2009

Вы можете использовать функции GD imagegrabscreen() или imagegrabwindow(), чтобы сделать снимок экрана, но на данный момент они доступны только в Windows.

0 голосов
/ 26 марта 2009

Не уверен, что этого будет достаточно для вас, потому что там есть кое-что добавленное, но стоит попробовать: http://www.snap.com

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