1
我想在js執行後獲取網站的DOM。 我也希望獲得網站中iframe的所有內容,與我在Google Chrome的Inspect Element功能中獲得的內容類似。如何獲取網頁的html dom及其框架
這是我的代碼:
import sys
from PyQt4 import QtGui, QtCore, QtWebKit
class Sp():
def save(self):
print ("call")
data = self.webView.page().currentFrame().documentElement().toInnerXml()
print(data.encode('utf-8'))
print ('finished')
def main(self):
self.webView = QtWebKit.QWebView()
self.webView.load(QtCore.QUrl("http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_iframe_scrolling"))
QtCore.QObject.connect(self.webView,QtCore.SIGNAL("loadFinished(bool)"),self.save)
app = QtGui.QApplication(sys.argv)
s = Sp()
s.main()
sys.exit(app.exec_())
這讓我的網站的HTML,而不是I幀裏面的HTML。有什麼方法可以獲取iframe的HTML嗎?
是否有任何方法可以將所有加載到一個html文件中的幀附加到後面? – yuval
@yuval。不,每一個都是一個單獨的html文檔。這實際上就是使用框架的關鍵 - 這樣就可以將一個網頁嵌入到另一個網頁中。但是如果你想保存*完整*網頁,框架只是問題的一部分 - 你還需要獲取所有的腳本,樣式表,圖像等等。大多數現代瀏覽器都有內置的工具來完成此操作。在Firefox中,它是File> Save Page As> Web Page,完成。這將創建一個單獨的html文檔,以及一個包含大量關聯文件的目錄。 – ekhumoro