Как программно сделать снимок просмотренных веб-страниц (на Ruby)?
-
06-07-2019 - |
Вопрос
Каково наилучшее решение для программного создания моментального снимка веб-страницы?
Ситуация такова:Я хотел бы сканировать кучу веб-страниц и периодически делать их уменьшенные снимки, скажем, раз в несколько месяцев, без необходимости вручную переходить к каждой из них.Я также хотел бы иметь возможность делать снимки веб-сайтов в формате jpg / png, которые могут быть полностью Flash / Flex, поэтому мне пришлось бы подождать, пока он загрузится, чтобы каким-то образом сделать снимок.
Было бы неплохо, если бы не было ограничений на количество эскизов, которые я мог бы генерировать (в разумных пределах, скажем, 1000 в день).
Есть идеи, как это сделать в Ruby?Кажется, довольно сложно.
Браузеры для этого используют:Safari или Firefox, предпочтительно Safari.
Большое спасибо.
Решение
Это действительно зависит от вашей операционной системы. Что вам нужно, это способ подключиться к веб-браузеру и сохранить его в изображение.
Если вы работаете на Mac - я думаю, вам лучше всего использовать MacRuby (или RubyCocoa - хотя я считаю, что в ближайшем будущем это будет устаревшим), а затем использовать WebKit фреймворк для загрузки страницы и визуализации ее в виде изображения.
Это определенно возможно, для вдохновения вы можете захотеть взглянуть на папарацци! и webkit2png projects.
Другой вариант, который не зависит от ОС, может заключаться в использовании API BrowserShots . р>
Другие советы
В Ruby нет встроенной библиотеки для рендеринга веб-страницы.
Использование Selenium и Ruby - одна из возможностей.Вы можете запустить Firefox как безголовый браузер (т.е. на сервере).
Вот исходный код для снимков из браузера. http://sourceforge.net/projects/browsershots/files/
Если вы используете Linux, вы могли бы использовать http://khtml2png.sourceforge.net/ и запишите это через Ruby.
Некоторые платные сервисы, которые нужно попробовать автоматизировать
как видно .... то есть? Fire Fox? опера? один из бесчисленных движков webkit?
если бы можно было автоматизировать http://browsershots.org :)
Используйте selenium-rc, он поставляется с возможностью создания снимков.
С jruby вы можете использовать библиотеку браузера SWT.