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

我试图以编程方式创build我自己的基于ruby / rails的网站上托pipe的大量网页的缩略图。

我想能够编写一个独立的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上构build相当简单。理想情况下,它将使用一个“gem install”命令进行安装。

我花了下午的时间探索各种选项,包括Moz 拍摄 射手 , webkit2png和rbwebkitgtk 。 他们都在正确的领域,但似乎没有三个平台上的工作。

如果我愿意从我的Rails应用程序(而不是网页)输出PDF,RMagick看起来像是一个可能的select,但是这让我感觉像是hacky。 RMagic和imagemagick在Mac OS X上运行起来也非常麻烦。

这样的图书馆是否存在,可以很容易地在三个平台上设置?

seleniumium RC有一个Ruby界面,可以使用capture_screenshot(文件名,kwargs)抓取屏幕截图。

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

你可能想试试这个:

http://www.pageglimpse.com/

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

有一个可用的PageGlimpse红宝石包装:

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

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

你可以使用宝石的美味 。

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