Skip to content

Instantly share code, notes, and snippets.

@eliezerfot123
Created August 27, 2013 14:08
Show Gist options
  • Select an option

  • Save eliezerfot123/6354014 to your computer and use it in GitHub Desktop.

Select an option

Save eliezerfot123/6354014 to your computer and use it in GitHub Desktop.

Revisions

  1. eliezerfot123 created this gist Aug 27, 2013.
    46 changes: 46 additions & 0 deletions screenshot_web.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    # -*- coding: utf-8 -*-
    import sys
    import time
    from PyQt4.QtCore import *
    from PyQt4.QtGui import *
    from PyQt4.QtWebKit import *

    class Screenshot(QWebView):
    def __init__(self):
    self.app = QApplication(sys.argv)
    QWebView.__init__(self)
    self._loaded = False
    self.loadFinished.connect(self._loadFinished)

    def capture(self, url, output_file):
    self.load(QUrl(url))
    self.wait_load()
    # ajustado eel tamaño de página
    frame = self.page().mainFrame()
    size = frame.contentsSize()
    # Añadiendo tamaño de ancho a la imagen
    size.setWidth(2000)
    self.page().setViewportSize(size)
    # render image
    image = QImage(self.page().viewportSize(), QImage.Format_ARGB32)
    painter = QPainter(image)
    frame.render(painter)
    painter.end()
    print 'saving', output_file
    image.save(output_file)

    def wait_load(self, delay=0):
    # eventos de aplicaciones de proceso hasta que la página cargue
    while not self._loaded:
    self.app.processEvents()
    time.sleep(delay)
    self._loaded = False

    def _loadFinished(self, result):
    self._loaded = True

    s = Screenshot()
    s.capture('http://www.google.com', 'website.png')

    # Que viva Python Cariii--
    # @eliezerfot123