8

我正在尝试以编程方式创建大量网页的缩略图,这些网页托管在我自己的基于 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 看起来是一个可能的选择,但这让我觉得很hacky。在 Mac OS X 上启动和运行 RMagic 和 imagemagick 也非常费力。

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

4

5 回答 5

6

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

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

于 2009-04-07T17:18:50.420 回答
2

你可能想试试这个:

http://www.pageglimpse.com/

于 2009-04-07T17:13:33.193 回答
2

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

于 2015-01-21T17:01:14.793 回答
1

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

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

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

于 2009-04-07T18:57:29.467 回答
1

你可以气喘吁吁地使用宝石

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

于 2016-01-08T15:30:34.313 回答