2009-04-07 4 views
8

Estoy tratando de crear programáticamente imágenes en miniatura de una gran cantidad de páginas web alojadas en mi propio sitio web basado en ruby ​​/ rails.¿Cómo puedo tomar capturas de pantalla de páginas web usando Ruby y un servidor Unix?

Quiero ser capaz de codificar un poco independiente de rubí que se ve algo como esto:

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 

necesito la biblioteca impresionante-pantalla-fabricante (y sus dependencias) a ser bastante fácil construir en Linux, Solaris y Mac OS X. Idealmente se instalará con un solo comando 'gem install'.

He pasado la tarde explorando varias opciones, incluyendo Moz snap shooter, webkit2png y rbwebkitgtk. Todos están en el área correcta, pero ninguno parece funcionar en las tres plataformas.

RMagick se ve como una posible opción si estoy dispuesto a dar salida a archivos PDF desde la aplicación de mis rieles (en lugar de páginas web), pero eso me parece muy raro. También es muy laborioso poner en marcha RMagic y ImageMagick en Mac OS X.

¿Existe una biblioteca que se pueda configurar fácilmente en tres plataformas?

+0

Esta pregunta se ha hecho al menos 3 veces en el pasado. Por favor vea las respuestas a # 125951, # 686858 y # 713938. –

+1

Todas esas respuestas se refieren a python, php o aplicaciones de línea de comandos. Ya he explorado esas opciones y estoy ansioso por encontrar una solución sólida basada en rubí. – Lee

Respuesta

1

No es un envoltorio de rubí para PageGlimpse disponibles:

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

Por desgracia, las condiciones de uso establecen que "no debe usar o lanzar ningún sistema automatizado, incluyendo sin limitación, 'lectores fuera de línea', "arañas", etc. para capturar los datos proporcionados por el Servicio ".

1

Puede utilizar la gema gastly.

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

+0

esto funciona para mí – draw

Cuestiones relacionadas