Pyqt сохранить дом в файл - PullRequest
       45

Pyqt сохранить дом в файл

0 голосов
/ 23 октября 2010

Почему этот код не работает? Я хочу сохранить DOM после выполнения JS на этой странице, и я хочу использовать QT без графического интерфейса. Извините за мой английский.

#coding:utf-8
from PyQt4 import QtCore, QtWebKit


class Sp():
    def save(self):
        print "call"
        data = self.webView.page().currentFrame().documentElement().toInnerXml()
        open("htm","w").write(data)
    def main(self):
        self.webView = QtWebKit.QWebPage()
        self.webView.load(QtCore.QUrl("http://www.google.com"))
        QtCore.QObject.connect(self.webView,QtCore.SIGNAL("loadFinished(bool)"),self.save)
s = Sp()
s.main()

1 Ответ

2 голосов
/ 23 октября 2010

Вы должны создать QApplication перед выполнением других вещей.

Добавить это:

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)
s = Sp()
s.main()
sys.exit(app.exec_())

ОБНОВЛЕНО : Кроме того, измените код, потому что QWebPage не 't load method:

import sys
from PyQt4 import QtGui, QtCore, QtWebKit

class Sp():
    def save(self):
        print "call"
        data = self.webView.page().currentFrame().documentElement().toInnerXml()
        open("htm","w").write(data)
        print 'finished'
    def main(self):
        self.webView = QtWebKit.QWebView()
        self.webView.load(QtCore.QUrl("http://www.google.com"))
        QtCore.QObject.connect(self.webView,QtCore.SIGNAL("loadFinished(bool)"),self.save)

app = QtGui.QApplication(sys.argv)
s = Sp()
s.main()
sys.exit(app.exec_())
...