如何使用Rails 3.1获取网站的屏幕截图? – 不使用服务
几乎每个答案我都找到了使用现有服务的参考资料。 有没有办法以编程方式使用Rails 3.1? 使用PHP很容易做到这一点(PHP中有预先构建的库可以做到这一点)。
在给定URL的情况下,我要做的是:
-
截取该网站的截图
-
裁剪它(仅左上角最多100×100像素
PS。 这是我的环境:Rails 3.1 ,Ruby 1.9.2
注意:解决方案可能还需要遵循URL上的任何重定向。
更新:
-
我见过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轻松完成裁剪
这项任务有一个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
这可能会有所帮助: https : //github.com/csquared/IMGKit
一个简单但仅限Mac的解决方案似乎是http://www.paulhammond.org/webkit2png/
只需chmod -x
脚本并用作python webkit2png http://www.google.com/
并创建3个文件:
- 完整截图
- 网站最顶部的缩略图
- 完整屏幕截图的缩略图
您可以使用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
- “运行rspec时,无法在任何源中找到pg-0.12.2”
- 如何使用paypal-ruby-sdk创建Paypal定期订阅计划时,卖家支付交易费用
- Ruby on Rails:为什么我会在rails s之后获得javascript和css的消息?
- ActiveRecord:定义关联时,将类而不是字符串传递给class_name
- 是否可以只询问ActiveRecord关联中的某些列?
- Rails – 渲染:目标锚标记的动作?
- 当我将我的应用程序推送到Heroku时,为什么我收到错误500“我们很抱歉,但出了点问题”?
- 如何使用javascript_include_tag获取文件夹中的所有脚本
- JS文件双重包含在rails app中