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