I've got a python script. Script takes screenshots from web pages. I use xvfb to run it. After about 240 iterations I recieved a message:
"Maximum number of clients reached script.py: cannot connect to X server :99".
I'd like to have more then 3 000 iterations.
Is there any way to close xserver connections without stopping the script do avoid an error?
Script.py has a for loop and uses code from:
webkit.py:
import sys
import time
from PyQt4.QtCore import QUrl
from PyQt4.QtGui import QApplication, QImage, QPainter
from PyQt4.QtWebKit import QWebView
from PyQt4 import QtCore
class Screenshot(QWebView):
def __init__(self, width, height):
self.app = QApplication(sys.argv)
QWebView.__init__(self)
self._loaded = False
self.loadFinished.connect(self.load_finished)
self.width = int(width)
self.height = int(height)
self.app.deleteLater()
def capture(self, url, output_file):
self.load(QUrl(url))
self.wait_load()
frame = self.page().mainFrame()
self.page().setViewportSize(QtCore.QSize(self.width, self.height))
image = QImage(self.page().viewportSize(), QImage.Format_ARGB32)
painter = QPainter(image)
frame.render(painter)
painter.end()
image.save(output_file)
return output_file
def wait_load(self, delay=1):
while not self._loaded:
self.app.processEvents()
time.sleep(delay)
self._loaded = False
def load_finished(self):
self._loaded = True