【发布时间】:2015-11-13 16:57:30
【问题描述】:
我设法使用建议的代码从网页呈现 HTML,然后根据需要解析、查找和使用文本。我正在使用 PyQt4。但是,我感兴趣的网页经常更新,我想重新渲染页面并检查更新的 HTML 以获取新信息。
因此,我的 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) 的东西。
正如你可能猜到的,我不是一个程序员,我通常通过窃取我几乎不理解的代码来解决问题。但这是我第一次找不到答案,所以我想我应该自己问一个问题。
我希望我的问题足够清楚,并且有人知道答案。
【问题讨论】:
-
感谢您的建议。这是我读过的帖子之一,认为它对我没有帮助。我会再仔细看看,如果它确实不能解决我的问题,我会解释原因
-
建议的解决方案是处理如何呈现列表中指定的几个不同网页。如果我制作一个长列表多次指定相同的 url,这可能会起作用,但似乎不是一个有效的解决方案。我不是一个熟练的程序员,看不到如何根据需要修改代码。我希望其他人实际上已经这样做了,因为我认为这不是一个不寻常的功能。我会继续环顾四周,看看我是否找到了答案,如果我找到了,我会在这里发帖
-
您显然没有正确阅读答案,因为它非常清楚地完全符合您的要求,只需要进行少量修改。无论如何,我已经发布了另一个简化的演示,希望能让事情变得更加清晰。