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