Wie bringe ich Python, QT und Webkit auf einem Headless-Server zum Laufen?
Ich habe einen Debian Linux Server, den ich für eine Vielzahl von Dingen benutze. Ich möchte, dass es einige Web-Scraping-Jobs ausführen kann, die ich regelmäßig ausführen muss.
Dieser Code kann seinhier gefunden.
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv, False) # Line updated based on mata's answer
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
Ein einfacher Test würde so aussehen:
url = 'http://example.com'
print Render(url).frame.toHtml()
Beim Aufruf des Konstruktors stirbt er mit dieser Meldung (es wird nach stdout gedruckt, keine unaufgefangene Ausnahme).
: cannot connect to X server
Wie kann ich Python (2.7), QT4 und Webkit auf einem Headless-Server verwenden? Es muss nie etwas angezeigt werden, sodass ich alle Einstellungen oder alles, was getweeked werden muss, tweeken kann.
Ich habe nach Alternativen gesucht, aber das passt am besten zu mir und meinen Projekten. Wenn ich einen X-Server installieren müsste, wie könnte ich das mit minimalem Overhead tun?