В QT является библиотеку асинхронной, вы, вероятно, не будет иметь никакого результата, если вы сразу же попытаться взглянуть на HTML данные вашего WebView после вызова нагрузки, потому что она сразу же возвращается, и будут вызывать loadFinished сигнал после получения результата. Вы можете, конечно, попытаться получить доступ к данным html так же, как и в методе _result_available, сразу после вызова загрузки, но он вернет пустую страницу (это поведение по умолчанию).
import sys
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
class Browser(QWebView):
def __init__(self):
QWebView.__init__(self)
self.loadFinished.connect(self._result_available)
def _result_available(self, ok):
frame = self.page().mainFrame()
print unicode(frame.toHtml()).encode('utf-8')
if __name__ == '__main__':
app = QApplication(sys.argv)
view = Browser()
view.load(QUrl('http://www.google.com'))
app.exec_()
Большое спасибо! Ваш пример просто отличный! – Vor
Добро пожаловать. – andrean
Спасибо, но когда я запустил этот _result_available(), он никогда не будет вызван, хотя __init __ (self) делает. – andyabel