示例#1
0
    def __main_qt():
        # Render the page.
        # If this method times out or loading failed, a
        # RuntimeException is thrown
        try:
            # Initialize WebkitRenderer object
            renderer = WebkitRenderer()
            renderer.logger = logger
            renderer.width = 400
            renderer.height = 600
            renderer.timeout = 5
            renderer.wait = 1
            renderer.format = options.format
            renderer.grabWholeWindow = options.window
            renderer.renderTransparentBackground = options.transparent
            renderer.encodedUrl = options.encoded_url
            if options.cookies:
                renderer.cookies = options.cookies

            if options.scale:
                renderer.scaleRatio = options.ratio
                renderer.scaleToWidth = options.scale[0]
                renderer.scaleToHeight = options.scale[1]

            if options.features:
                if "javascript" in options.features:
                    renderer.qWebSettings[
                        QWebSettings.JavascriptEnabled] = True
                if "plugins" in options.features:
                    renderer.qWebSettings[QWebSettings.PluginsEnabled] = True

            print(options.url)
            renderer.render_to_file(res=options.url,
                                    file_object=options.output)
            options.output.close()
            QApplication.exit(0)
        except RuntimeError as e:
            logger.error("main: %s" % e)
            print(e)
            QApplication.exit(1)
示例#2
0
 def _get_renderer(self, width, height):
     try:
         return self.renderers[(width, height)]
     except:
         if self.verbose:
             print "about to make WebkitRenderer"
         renderer = WebkitRenderer(scaleRatio='crop',
                                   scaleTransform='smooth',
                                   scaleToWidth=width,
                                   scaleToHeight=height,
                                   width=1440,
                                   height=900,
                                   wait=5,
                                   timeout=60,
                                   ignoreAlerts=True,
                                   ignoreConfirms=True,
                                   ignoreConsoleMessages=True)
         if self.verbose:
             print "done making WebkitRenderer"
         renderer.qWebSettings[QWebSettings.JavascriptEnabled] = True
         self.renderers[(width, height)] = renderer
         return renderer
示例#3
0
    def __main_qt():
        # Render the page.
        # If this method times out or loading failed, a
        # RuntimeException is thrown
        try:
            # Initialize WebkitRenderer object
            renderer = WebkitRenderer()
            renderer.logger = logger
            renderer.width = options.geometry[0]
            renderer.height = options.geometry[1]
            renderer.timeout = options.timeout
            renderer.wait = options.wait
            renderer.format = options.format
            renderer.grabWholeWindow = options.window
            renderer.renderTransparentBackground = options.transparent
            renderer.quality = options.quality

            if options.scale:
                renderer.scaleRatio = options.ratio
                renderer.scaleToWidth = options.scale[0]
                renderer.scaleToHeight = options.scale[1]

            if options.features:
                if "javascript" in options.features:
                    renderer.qWebSettings[
                        QWebSettings.JavascriptEnabled] = True
                if "plugins" in options.features:
                    renderer.qWebSettings[QWebSettings.PluginsEnabled] = True

            try:
                res = 0
                renderer.render_to_file(url=options.url,
                                        file_object=options.output)
            except BaseWebkitException, e:
                res = e.status_code
            finally:
                options.output.close()
                QApplication.exit(res)
示例#4
0
 def __init__(self):
     #self.app_gui = self.init_qtgui()
     self.renderer = WebkitRenderer()
     self.renderer.format = 'jpg'
     self.renderer.width = 1024
     self.renderer.height = 900
示例#5
0
#!/usr/bin/env python
import sys
import signal
from webkit2png import WebkitRenderer
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import QWebPage
app = QApplication(sys.argv)
signal.signal(signal.SIGINT, signal.SIG_DFL)
wkr = WebkitRenderer()

hosts = ['http://www.google.com', 'http://wikipedia.com', 'http://github.com']
for host in hosts:
    try:
        f = open(("%s.png" % host).replace('/', '_'), 'w')
        wkr.render_to_file(host, f)
        f.close()
        print "finished %s" % host
    except Exception, err:
        print "Error on %s: %s" % (host, str(err))