【问题标题】:How to Programmatically take Snapshot of Crawled Webpages (in Ruby)?如何以编程方式拍摄抓取网页的快照(在 Ruby 中)?
【发布时间】:2009-10-27 18:40:40
【问题描述】:

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

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

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

任何想法如何在 Ruby 中做到这一点?看起来挺难的。

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

非常感谢。

【问题讨论】:

  • 其他一些注意事项:我使用的是 Macbook、Safari,除了缩略图之外,我还希望能够获得大型、高质量的图像。
  • 您认为VM+Java 是一种可行的解决方案吗? vimeo.com/6636018

标签: ruby web web-crawler snapshot


【解决方案1】:

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

如果您使用的是 Mac - 我想您最好的选择是使用 MacRuby(或 RubyCocoa - 尽管我相信这将在不久的将来被弃用)然后使用 WebKit 框架加载页面并将其呈现为图像。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      正如...所看到的那样,即?火狐?歌剧?无数的 webkit 引擎之一?

      如果有可能自动化http://browsershots.org :)

      【讨论】:

      • 最好是 safari,虽然 firefox 很好。这不会改变:)
      【解决方案4】:

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

      【讨论】:

      • 有什么例子可以开始吗?我也试过 PageGlimpse,很简单,但是没有例子。
      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2023-04-02
        • 2011-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多