#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