如何以编程方式获取已爬网页面的快照(在Ruby中)?

以编程方式拍摄网页快照的最佳解决方案是什么?

情况是这样的:我想抓住一堆网页并定期拍摄它们的缩略图,比如每隔几个月说一次,而不必手动去每一个。 我还希望能够获取可能完全是Flash / Flex的网站的jpg / png快照,所以我必须等到它加载以某种方式拍摄快照。

如果对我可以生成的缩略图数量没有限制(在合理范围内,比方说每天1000),那就太好了。

任何想法如何在Ruby中做到这一点? 看起来非常艰难。

浏览器要执行此操作:Safari或Firefox,最好是Safari。

非常感谢。

这实际上取决于您的操作系统。 您需要的是一种挂钩到Web浏览器并将其保存到图像的方法。

如果你在Mac上 – 我想你最好的选择是使用MacRuby (或RubyCocoa – 虽然我相信这将在不久的将来被弃用),然后使用WebKit框架加载页面并渲染它作为一个形象。

这绝对是可能的,你可能希望看看狗仔队的灵感! 和webkit2png项目。

另一个不依赖于操作系统的选项可能是使用BrowserShots API 。

Ruby中没有用于呈现网页的内置库。

从……看? 火狐? 歌剧? 无数的webkit引擎之一?

如果只有它可以自动化http://browsershots.org 🙂

使用selenium-rc,它带有快照function。

使用jruby,您可以使用SWT的浏览器库。