2011-03-10 12 views
5

estoy corriendo Python 3.1 y que me llamaría un novato avanzada :)sitio web a la imagen

Mi pregunta es simple: Estoy tratando de hacer un programa simple que pide a los usuarios de una URL (o múltiple URL) y luego va al sitio web y toma una captura de pantalla (de toda la página, no solo de lo que se puede ver en el navegador sin desplazarse hacia abajo).

Es más sencillo entonces suena, quiero usar una plataforma existente en la web, similar a esto:

import subprocess 
MYFILENAME = "google_screen" 
MYURL = "www.google.com" 
subprocess.Popen(['wget', '-O', MYFILENAME+'.png', 'http://images.websnapr.com/?url='+MYURL+'&size=s&nocache=82']).wait() 

Aunque este sitio web no funciona :(, me pregunto ¿es posible hacer con this website y si es así, ¿cómo? Si no es posible, ¿hay alternativas?

Respuesta

3

Hay un paquete llamado webkit2png que puedes usar para esto , Se encuentra ubicado: here

Más información sobre this blog post

Ejemplo de entrada en el blog (con copia a SO para su conservación, leer el blog de entender que si usted tiene problemas):

#!/usr/bin/env python 
import sys 
import signal 

from PyQt4.QtCore import * 
from PyQt 4.QtGui import * 
from PyQt4.QtWebKit import QWebPage 

def onLoadFinished(result): 
    if not result: 
     print "Request failed" 
     sys.exit(1) 

    # Set the size of the (virtual) browser window 
    webpage.setViewportSize(webpage.mainFrame().contentsSize()) 

    # Paint this frame into an image 
    image = QImage(webpage.viewportSize(), QImage.Format_ARGB32) 
    painter = QPainter(image) 
    webpage.mainFrame().render(painter) 
    painter.end() 
    image.save("output2.png") 
    sys.exit(0) 


app = QApplication(sys.argv) 
signal.signal(signal.SIGINT, signal.SIG_DFL) 

webpage = QWebPage() 
webpage.connect(webpage, SIGNAL("loadFinished(bool)"), onLoadFinished) 
webpage.mainFrame().load(QUrl("http://www.google.com")) 

sys.exit(app.exec_()) 

Edición: Link to the pyqt4 download page

+0

Gracias, pero obtengo el error 'de PyQt4.QtCore import * ImportError: Ningún módulo llamado PyQt4.QtCore'. He instalado "webkit2png.py" en python31/lib ¿correcto? ¿Necesito algo más? O y muchas gracias por la respuesta – Alex

+0

Probablemente no tenga los paquetes pyqt4 instalados aquí hay un enlace para eso: http://www.riverbankcomputing.co.uk/software/pyqt/download (y agregando a la respuesta para el primero tiempo personas que omiten comentarios) – sclarson

+0

Muchas gracias, ¿sabes cómo editar cuánto tiempo espera para cargar el flash, por ejemplo? SEÑAL ("LoadFinished (bool)"). Estoy intentando cargar las finanzas de Google, pero creo que cree que el flash aún se está cargando, mientras que se está editando de forma constendida. thx – Alex

0

puede utilizar selenio para obtener una captura de pantalla, pero sólo será lo que se ve por el navegador.

Cuestiones relacionadas