如何使用ruby和unix服务器截取网页截图?

时间:2009-04-07 17:01:37

标签: ruby unix gtk screenshot rmagick

我正在尝试以编程方式创建托管在我自己的基于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

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

我花了一整个下午探索各种选项,包括Moz snap shooterwebkit2pngrbwebkitgtk。它们都在正确的区域,但似乎没有一个在所有三个平台上都有效。

如果我愿意从我的rails应用程序(而不是网页)输出PDF,那么RMagick看起来是一个可能的选项,但这让我感到很骇人听闻。在Mac OS X上运行RMagic和imagemagick是非常费力的。

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

5 个答案:

答案 0 :(得分:6)

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

然后你必须将它缩小为缩略图。

答案 1 :(得分:2)

你可能想试试这个:

http://www.pageglimpse.com/

答案 2 :(得分:2)

答案 3 :(得分:1)

PageGlimpse有一个红宝石包装:

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

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

答案 4 :(得分:1)

您可以使用gem gastly

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