13

几乎每个答案我都使用一些现有服务找到了参考。有没有办法以编程方式使用 Rails 3.1 做到这一点?使用 PHP 很容易做到这一点(PHP 中有预建的库可以做到这一点)。

给定一个 URL,我想要做的是:

  1. 截取网站截图

  2. 裁剪它(只取最左上角的 100x100 像素

PS。这是我的环境: Rails 3.1, Ruby 1.9.2

注意:该解决方案可能还需要遵循 URL 上的任何重定向。

更新:

4

4 回答 4

8

这个任务有一个 Rails gem。

 gem install selenium-webdriver

简单用例:

require 'selenium-webdriver'
 width = 1024
 height = 728
 driver = Selenium::WebDriver.for :firefox
 driver.navigate.to 'http://domain.com'
 driver.execute_script %Q{
   window.resizeTo(#{width}, #{height});
 }
 driver.save_screenshot('/tmp/screenshot.png')
 driver.quit
于 2012-12-05T12:06:52.323 回答
4

这可能会有所帮助:https ://github.com/csquared/IMGKit

于 2011-11-21T22:00:00.533 回答
2

您可以使用 wkhtmltoimage 加载网页并将其保存为图像,然后使用 imagemagick(或其中一个 ruby​​ 包装器)对其进行裁剪。

wkhtmltoimage www.google.com output.jpg
convert -crop 100x100+0+100 output.jpg cropped.jpg

不过,OSX 没有预构建的 wkhtmltoimage 二进制文件,因此您可能希望使用 wkhtmltopdf 代替,然后使用 imagemagick 转换为图像。

wkthmltopdf www.google.com output.pdf
convert -crop 100x100+0+100 output.pdf cropped.jpg
于 2011-11-21T22:11:02.343 回答
2

一个简单但仅限 Mac的解决方案似乎是http://www.paulhammond.org/webkit2png/

只是chmod -x该脚本并使用 aspython webkit2png http://www.google.com/并创建 3 个文件:

  1. 完整截图
  2. 网站最顶部部分的缩略图
  3. 完整截图的缩略图
于 2011-11-21T22:37:07.027 回答