以编程方式拍摄网页快照的最佳解决方案是什么?
情况是这样的:我想抓取一堆网页并定期拍摄它们的缩略图,比如每隔几个月说一次,而不必手动去每一个。我还希望能够获取可能完全是Flash / Flex的网站的jpg / png快照,所以我必须等到加载它以某种方式拍摄快照。
如果对我可以生成的缩略图数量没有限制(在合理范围内,比如说每天1000个),那就太好了。
如何在Ruby中做到这一点?看起来非常艰难。
浏览器要执行此操作:Safari或Firefox,最好是Safari。
非常感谢。
答案 0 :(得分:4)
这实际上取决于您的操作系统。您需要的是一种挂钩到Web浏览器并将其保存到图像的方法。
如果你在Mac上 - 我认为你最好的选择是使用MacRuby(或RubyCocoa - 虽然我相信这会在不久的将来被弃用)然后到使用WebKit框架加载页面并将其渲染为图像。
这绝对是可能的,为了获得灵感,您可能希望查看Paparazzi!和webkit2png项目。
另一个不依赖于操作系统的选项可能是使用BrowserShots API。
答案 1 :(得分:3)
Ruby中没有用于呈现网页的内置库。
使用Selenium& Ruby是一种可能性。您可以将Firefox作为无头浏览器运行(即在服务器上)。
以下是浏览器镜头的源代码。 http://sourceforge.net/projects/browsershots/files/
如果您使用的是Linux,则可以使用http://khtml2png.sourceforge.net/并通过Ruby编写脚本。
尝试自动化的一些付费服务
答案 2 :(得分:1)
从......看?火狐?歌剧?无数的webkit引擎之一?
如果只能自动http://browsershots.org:)
答案 3 :(得分:1)
使用selenium-rc,它带有快照功能。
答案 4 :(得分:0)
使用jruby,您可以使用SWT的浏览器库。