Кажется, что вы используете руководство по Qt Webkit, которое устарело с Qt 5.6, в настоящее время используется Qt WebEngine, который изменил многие классы и методы, поскольку он основан на хроме, в этом link
вы можете найти руководство по портированию Qt Webkit на Qt WebEngine. В вашем случае нет mainFrame()
, а способ получить HTML асинхронный:
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView as QWebView
class Browser(QWebView):
def __init__(self):
QWebView.__init__(self)
self.loadFinished.connect(self._result_available)
def _result_available(self, ok):
if ok:
frame = self.page()
frame.toHtml(self.callback)
def callback(self, html):
print(unicode(html).encode('utf-8'))
if __name__ == '__main__':
app = QApplication(sys.argv)
view = Browser()
view.load(QUrl('http://www.google.com'))
sys.exit(app.exec_())