我正在嘗試使用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