gpt4 book ai didi

Python - 如何在 QWebEnginePage 中使用 mainframe() 方法 [mainframe() 错误]

转载 作者:行者123 更新时间:2023-12-01 08:48:21 27 4
gpt4 key购买 nike

我在 PyQt5 代码中遇到错误。谁能帮我。

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):
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_()

输出:[错误]

  AttributeError                            Traceback (most recent call last) 
<ipython-input-50-e1b5f3fc9054> in _result_available(self, ok)

13

14 def _result_available(self, ok):

---> 15 frame = self.page().mainFrame() ------------- [ERROR]

16 print( unicode(frame.toHtml()).encode('utf-8'))

17

AttributeError: 'QWebEnginePage' object has no attribute 'mainFrame'

最佳答案

您似乎正在使用 Qt Webkit 指南,该指南已从 Qt 5.6 开始弃用,目前使用的是 Qt WebEngine,由于它基于 chromium,因此更改了许多类和方法,在此 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_())

关于Python - 如何在 QWebEnginePage 中使用 mainframe() 方法 [mainframe() 错误],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53221011/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com