我已经设法使用建议的代码,以便从网页呈现HTML,然后解析,查找并使用所需的文本。我正在使用PyQt4。但是,我感兴趣的网页经常更新,我想重新渲染页面并检查更新的HTML以获取新信息。我如何重新渲染HTML PyQt4
因此,我在我的pythonscript中有一个循环,这样我就可以重新开始。但是,这会导致程序崩溃。我搜查了网络,发现这是可以预料的,但我没有找到任何关于如何正确执行的建议。这一定很简单,我猜?
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
class Render (QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)
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()
r = Render(url)
html = r.frame.toHtml()
S,o当我第二次点击r=Render(url)
时,它崩溃了。 S,o我正在寻找类似r = Rerender(url)
的东西。你可能会猜到,我并不是一个程序员,我通常会通过窃取我几乎不了解的代码来获取。但这是我第一次找不到答案,所以我想我应该自己提出一个问题。
我希望我的问题很清楚,并且有人有答案。
的[PyQt的类没有第二个使用工作]可能的复制(http://stackoverflow.com/questions/21909907/pyqt-class-not-用于第二次使用) – ekhumoro
感谢您的建议。这是我阅读的帖子之一,并没有想到它会帮助我。我会再仔细看看,如果它确实不能解决我的问题,我将解释为什么 – Pal
建议的解决方案是处理如何呈现列表中指定的几个不同的网页。这可能会工作,如果我做一个长列表多次指定相同的网址,但似乎并不是一个有效的解决方案。我不是一个足够熟练的程序员,不知道如何根据需要修改代码。我的希望是,其他人真的做到了这一点,因为我认为这不是一个非常规的功能。我会继续环顾四周,看看我是否找到答案,如果我找到答案,会在这里发帖 – Pal