我发现几乎每个答案都使用了一些现有的服务。 有没有办法以编程方式使用Rails 3.1?这对PHP来说很容易(PHP中有预构建的库可以做到这一点)。
给定URL,我想要做的是:
截取网站的屏幕截图
裁剪它(仅左上角最多100x100像素
PS。这是我的环境:Rails 3.1 ,Ruby 1.9.2
注意:解决方案可能还需要遵循网址上的任何重定向。
更新
我见过https://github.com/topfunky/osxscreenshot问题是它需要旧版本的Ruby(1.8.x)并且只能在我的开发Mac机器上运行。
我已经看到了Wordpress的漏洞(他们有一项服务没有做任何人可能滥用的速率限制)。我不想为了我的利益滥用他们的资源...... http://s.wordpress.com/mshots/v1/http%3A%2F%2Fstackoverflow.com%2F?w=500
使用http://rmagick.rubyforge.org/或https://github.com/thoughtbot/paperclip
答案 0 :(得分: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
答案 1 :(得分:4)
这可能会有所帮助:https://github.com/csquared/IMGKit
答案 2 :(得分:2)
简单,但仅限Mac ,解决方案似乎是http://www.paulhammond.org/webkit2png/
只需chmod -x
该脚本并用作python webkit2png http://www.google.com/
并创建3个文件:
答案 3 :(得分:1)
您可以使用wkhtmltoimage加载网页并将其保存为图像,然后使用imagemagick(或其中一个红宝石包装器)来裁剪它。
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