How do I take screenshots of web pages using ruby and a unix server? [closed]

眉间皱痕 提交于 2019-11-30 10:52:14

问题


I'm trying to programatically create thumbnail images of a large number of web pages that are hosted on my own ruby/rails-based website.

I want to be able to code a stand-alone bit of ruby that looks something like this:

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

I need the awesome-screenshot-maker library (and its dependencies) to be fairly easy to build on Linux, Solaris and Mac OS X. Ideally it will install with a single 'gem install' command.

I've spent the afternoon exploring various options, including Moz snap shooter, webkit2png and rbwebkitgtk. They are all in the right area, but none seem to work on all three platforms.

RMagick looks like a possible option if I'm willing to output PDFs from my rails app (instead of web pages), but that strikes me as hacky. It's also very laborious to get RMagic and imagemagick up and running on Mac OS X.

Does such a library exist that can easily be setup on three platforms?


回答1:


Selenium RC has a Ruby interface and can grab a screenshot using capture_screenshot(filename,kwargs).

You'd then have to shrink it to a thumbnail.




回答2:


you might want to try this:

http://www.pageglimpse.com/




回答3:


There is https://github.com/maxwell/screencap which uses phantom.js




回答4:


There is a ruby wrapper for PageGlimpse available:

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

Unfortunately, the Terms of Use state that "You must not use or launch any automated system, including without limitation, "offline readers", "spiders," etc. to capture data provided by the Service."




回答5:


You can use the gem gastly.

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



来源:https://stackoverflow.com/questions/726660/how-do-i-take-screenshots-of-web-pages-using-ruby-and-a-unix-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!