Как Google и Facebook реализуют и создают функциональность ссылки предварительного просмотра?

#python #image #webpage-screenshot

#python #изображение #веб-страница-скриншот

Вопрос:

У Google, Facebook и некоторых других теперь есть функция ссылки предварительного просмотра, где вы можете просмотреть «скриншот», скажем, домашней страницы веб-сайта. Есть ли какие-либо предложения, как я могу этого добиться?

В частности, я хотел бы иметь возможность сделать снимок экрана (а-ля снимок экрана iPhone) и сделать его доступным в виде изображения, такого как jpg или png.

Я хочу сделать это из python, если это возможно.

Комментарии:

1. Интересный вопрос, как сделать скриншот веб-страницы с помощью кода?

Ответ №1:

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

Существует несколько веб-сервисов, которые предоставляют эту функциональность, например WebSnapr

Комментарии:

1. Спасибо за это. Я подумал, что это (PhantomJS) может быть способом попробовать, но если кто-то другой выполнил эту работу, я с радостью воспользуюсь этим. Websnapr выглядит хорошо, но я должен заставить его работать разумно с размерами iPhone.

2. Обновление: в итоге я использовал phantomjs для этого. Однако есть несколько вещей, на которые следует обратить внимание: нам пришлось решить несколько проблем, чтобы получить разумное время рендеринга. Зависимости для этого до крайности нелепы — зависимости от окон QT и X. Учитывая все обстоятельства, скриншоты идеальны и визуализируются локально за доли секунды. Если кого-нибудь заинтересуют подробности, напишите мне.

Ответ №2:

Мы используем сервис Bluga, он не слишком обширный и довольно прост в реализации. Если вам это не нравится, доступно множество других сервисов.

Комментарии:

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

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

3. Обновление: в итоге я использовал phantomjs для этого. Однако следует обратить внимание на несколько моментов: нам пришлось решить несколько проблем, чтобы получить разумное время рендеринга. Зависимости для этого смешны до крайности — зависимости от окон QT и X. Учитывая все обстоятельства, скриншоты идеальны и отображаются локально за доли секунды. Если кого-нибудь заинтересуют подробности, напишите мне.

4. @znarkus да, он будет захватывать flash. Вам нужно установить load-plugins = да . У меня не было необходимости, и моей средой был Linux. Я прочитал неофициальные свидетельства того, что это немного не соответствует Windows, но я бы предположил, что если это вообще работает в Windows, то это могут быть просто проблемы с синхронизацией.

Ответ №3:

Также может помочьпредварительный просмотр Jquery. Это действительно похоже на предварительный просмотр Facebook