Как программно сделать снимок просканированных веб-страниц (в Ruby)? - PullRequest
2 голосов
/ 27 октября 2009

Как лучше всего программно сделать снимок веб-страницы?

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

Было бы неплохо, если бы не было ограничений на количество миниатюр, которые я мог генерировать (в пределах разумного, скажем, 1000 в день).

Есть идеи, как это сделать в Ruby? Кажется довольно жестким.

Браузеры для этого: Safari или Firefox, предпочтительно Safari.

Большое спасибо.

Ответы [ 5 ]

4 голосов
/ 27 октября 2009

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

Если вы работаете на Mac - я думаю, что вам лучше всего будет использовать MacRuby (или RubyCocoa - хотя я считаю, что в ближайшем будущем это будет устаревшим ), а затем использовать инфраструктуру WebKit для загрузки страницы и ее отображения в виде изображения.

Это определенно возможно, для вдохновения вы можете захотеть взглянуть на проекты Папарацци! и webkit2png .

Другим вариантом, не зависящим от ОС, может быть использование BrowserShots API .

3 голосов
/ 27 октября 2009

В Ruby нет встроенной библиотеки для рендеринга веб-страницы.

1 голос
/ 27 октября 2009

Используйте selenium-rc, он поставляется с возможностью создания снимков.

1 голос
/ 27 октября 2009

как видно .... то есть? Fire Fox? опера? один из бесчисленных движков webkit?

если бы только можно было автоматизировать http://browsershots.org:)

0 голосов
/ 27 октября 2009

С jruby вы можете использовать библиотеку браузера SWT.

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