2010-10-15 15 views
6

¿Crees que es técnicamente posible tomar un screeshot de un sitio web programáticamente?¿Es técnicamente posible tomar una captura de pantalla de un sitio web mediante programación?

Me gustaría diseñar una tarea de Python programada que rastree una lista de sitios web que toman una captura de pantalla de la página de inicio de ellos.

¿Crees que es técnicamente posible o conoces el sitio web de un tercero que ofrece un servicio como ese (Input: url --> Output: screenshot)?

¿Alguna sugerencia?

+6

¿Está buscando funcionalidades como las que ofrece http://www.browsershots.org? Código fuente disponible en http://code.google.com/p/browsershots/ – birryree

+1

@birryree debes responder en lugar de comentar :) creo que es una buena respuesta – samy

+1

Estoy de acuerdo con Samy: ¡responde la pregunta después de todo! :) –

Respuesta

1

¿Qué tal pyGTK

import gtk.gdk 

w = gtk.gdk.get_default_root_window() 
sz = w.get_size() 
print "The size of the window is %d x %d" % sz 
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1]) 
pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1]) 
if (pb != None): 
    pb.save("screenshot.png","png") 
    print "Screenshot saved to screenshot.png." 
else: 
    print "Unable to get the screenshot." 
+0

ImageMagick es solo una biblioteca genérica de funciones para trabajar en imágenes. Eso sería como responder a la pregunta: "¿Cómo puedo implementar FFT en C#?" y tú respondiendo "Oh, puedes usar algo en la clase de Matemáticas para eso". – Brad

+0

¿De qué manera ImageMagick proporciona la capacidad de procesar HTML en una imagen? –

+1

Gracias @David, muy apreciado. – Fenton

0

Ciertamente es técnicamente posible.

Probablemente tendrías que procesar el HTML directamente en un archivo de imagen (o más probablemente, en un mapa de bits en memoria que se escribió en un archivo de imagen una vez que se completó).

No conozco ninguna biblioteca para hacer esto por usted (aparte de un WebKit modificado, tal vez) ... pero ciertamente hay sitios web que hacen esto.

Por supuesto, esto es un poco más complicado que simplemente abrir la página en un navegador en una máquina y tomar una captura de pantalla mediante programación, pero el resultado sería mejor si no le importa el resultado de un navegador específico .

3

Puede marcar webkit2png (solo OS X) y khtml2png (Linux) y este post (use PyQt y WebKit).

+0

webkit2png también funciona en GNU/Linux, consulte esta publicación: http://gfdsa.gfdsa.org/2012/08/15/making-web-pages-screenshots-with-webkit2png-flash-included/ –

1

Usé selenio y PhantomJS.

from selenium import webdriver 
driver = webdriver.PhantomJS() 
driver.get("http://anyurl.com") 
driver.save_screenshot("/path/to/folder") 

asegúrese de colocar el ejecutable PhantomJS en su $ PATH.

Cuestiones relacionadas