【问题标题】:How do I take screenshots of web pages using ruby and a unix server? [closed]如何使用 ruby​​ 和 unix 服务器截取网页截图? [关闭]
【发布时间】:2009-04-07 17:01:36
【问题描述】:

我正在尝试以编程方式创建大量网页的缩略图,这些网页托管在我自己的基于 ruby​​/rails 的网站上。

我希望能够编写一个独立的 ruby​​ 代码,看起来像这样:

require 'awesome-screenshot-maker'

items.each do |id|
  url = "http://foo.com/bar/#{id}"
  shooter = AwesomeScreenshotMaker.new(0.2) # thumbnails are 20% of original
  shooter.capture(url, "/images/thumbnail-#{id}.png")
end

我需要 awesome-screenshot-maker 库(及其依赖项)相当容易在 Linux、Solaris 和 Mac OS X 上构建。理想情况下,它将使用单个“gem install”命令进行安装。

我花了一个下午探索各种选择,包括Moz snap shooterwebkit2pngrbwebkitgtk。它们都在正确的领域,但似乎没有一个适用于所有三个平台。

如果我愿意从我的 rails 应用程序(而不是网页)输出 PDF,RMagick 看起来是一个可能的选择,但这让我觉得很笨拙。在 Mac OS X 上启动和运行 RMagic 和 imagemagick 也非常费力。

是否存在这样一个可以在三个平台上轻松设置的库?

【问题讨论】:

  • 这个问题过去至少被问过 3 次。请参阅#125951、#686858 和 #713938 的答案。
  • 这些答案都是关于 python、php 或命令行应用程序的。我已经探索了这些选项,并渴望找到一个可靠的基于 ruby​​ 的解决方案。

标签: ruby unix gtk screenshot rmagick


【解决方案1】:

Selenium RC 有一个 Ruby 接口,可以使用capture_screenshot(filename,kwargs) 抓取屏幕截图。

然后您必须将其缩小为缩略图。

【讨论】:

    【解决方案2】:

    你可能想试试这个:

    http://www.pageglimpse.com/

    【讨论】:

    • PageGlimpse 已经关门了。
    【解决方案3】:

    https://github.com/maxwell/screencap 使用 phantom.js

    【讨论】:

    • 这对我不起作用
    • 我也是。它似乎在f.fetch 之后挂起
    【解决方案4】:

    有一个用于 PageGlimpse 的 ruby​​ 包装器:

    http://code.squidchunks.com/pageglimpse/

    很遗憾,使用条款规定“您不得使用或启动任何自动化系统,包括但不限于“离线阅读器”、“蜘蛛”等来捕获服务提供的数据。”

    【讨论】:

      【解决方案5】:

      您可以使用 gem gastly

      Gastly.capture('http://google.com', 'output.png')

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-19
        • 1970-01-01
        • 2011-10-25
        • 1970-01-01
        • 1970-01-01
        • 2022-10-14
        • 2013-05-02
        • 2010-09-08
        相关资源
        最近更新 更多