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

时间:2009-10-27 18:40:40

标签: ruby web web-crawler snapshot

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

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

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

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

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

非常感谢。

5 个答案:

答案 0 :(得分:4)

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

如果你在Mac上 - 我认为你最好的选择是使用MacRuby(或RubyCocoa - 虽然我相信这会在不久的将来被弃用)然后到使用WebKit框架加载页面并将其渲染为图像。

这绝对是可能的,为了获得灵感,您可能希望查看Paparazzi!webkit2png项目。

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

如果只能自动http://browsershots.org:)

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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