我正在尝试使用Pyside来渲染网页的JavaScript生成的HTML,然后使用该HTML进行网页浏览。我开始使用this quick example,但结果非常不一致。为什么QtWebkit for python不能加载大多数网页?
问题是,有些页面工作得很好,但其他页面无限悬挂。我不是说在几秒钟后放弃,我已经让脚本在不同时间运行了几个小时,并且没有取得进展。
我当前的代码如下:
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import *
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished[bool].connect(self.end)
self.mainFrame().load(url)
self.app.exec_()
def end(self, result):
print 'end'
self.finalFrame = self.mainFrame()
self.app.quit()
r = Render('http://pyside.github.io/docs/pyside/PySide/QtWebKit/index.html')
print r.finalFrame.toHtml().encode('ascii', 'ignore')
print 'done'
这页的作品,因为这样做在this answer给出的页面,但大多数人( 'https://www.google.ca/', 'https://webscraping.com')没有。
如何获取这些页面加载?
这个问题必须在你的最后,因为我没有问题加载任何这些网页。因此,除非您有一些重要的新信息要添加,否则这实际上只是关于此主题的其他问题的复本。曾尝试使用不同的方法加载这些网址,例如[urllib2](https://docs.python.org/2/library/urllib2.html#module-urllib2)? – ekhumoro
是的,我可以使用urllib2加载它们,它工作正常。我提到的网址要么永远不会加载,要么花费时间超过6小时(到目前为止)。从我读的这可能是它可能是一个SSL错误,但没有建议的修复程序,我发现可以实施的各种原因(我没有使用套接字,QSslConfiguration模块不能导入等) – GreySage
Can请说明您正在使用的PySide和Qt4的哪些版本,以及在哪个平台上?另外,请确保您在标准控制台而不是IDE或调试器中测试代码。 – ekhumoro