Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 皮塞德。提取DOM HTML。访问网络管理器_Javascript_Python_Html_Dom_Pyside - Fatal编程技术网

Javascript 皮塞德。提取DOM HTML。访问网络管理器

Javascript 皮塞德。提取DOM HTML。访问网络管理器,javascript,python,html,dom,pyside,Javascript,Python,Html,Dom,Pyside,我需要从页面中提取所有日历数据,如 "". 首先-使用内部dom提取所有html。 使用eclipse和Python 3.3,win7。在这里搜索答案,并根据答案对smth进行编码。 看起来像: from PySide import QtGui, QtDeclarative from PySide.QtGui import QApplication, QDesktopServices, QImage, QPainter from PySide.QtCore import QByteArray,

我需要从页面中提取所有日历数据,如 "". 首先-使用内部dom提取所有html。 使用eclipse和Python 3.3,win7。在这里搜索答案,并根据答案对smth进行编码。 看起来像:

from PySide import QtGui, QtDeclarative
from PySide.QtGui import QApplication, QDesktopServices, QImage, QPainter
from PySide.QtCore import QByteArray, QUrl, QTimer, QEventLoop, QIODevice, QObject
from PySide.QtWebKit import QWebFrame, QWebView, QWebPage, QWebSettings
from PySide.QtNetwork import QNetworkAccessManager, QNetworkProxy, QNetworkRequest, QNetworkReply, QNetworkDiskCache
#!/usr/bin/env python
"""
app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("http://www.dukascopy.com/swiss/english/marketwatch/calendars/eccalendar/"))
web.show()
sys.exit(app.exec_())
"""
app = QApplication(sys.argv)
w = QWebView()
request = QNetworkRequest(QUrl("http://www.dukascopy.com/swiss/english/marketwatch/calendars/eccalendar/"))
reply = w.page().networkAccessManager().get(request)
print(reply)
byte_array = reply.readAll()
plist = reply.rawHeaderList()
print(plist)
print(byte_array)
当将页面加载到QWebView()时,它工作正常(注释代码),但我找不到如何从QWebView()提取所有html。所以我试着通过“请求”——取消注释的代码。没有打印任何内容。

尝试使用信号:

def print_content():
     print web.page().mainFrame().toHtml() # or toPlainText()
     # or
     # print web.page().currentFrame().toHtml() # or toPlainText()


print\u content
应该被调用,然后loadFinished信号到达

添加了这样的代码(两个变体)
h1=web.page().mainFrame().toHtml().toHtml().toPlainText()t1=web.page().mainFrame().toPlainText()h2=web.page().toHtml()或toPlainText()t2=web.page().currentFrame().toPlainText()打印(h2)打印(t1)打印(t2)
但它只打印“ToHTML”,只有这个“好的,新的变体看起来更漂亮。”。但是,当我使用其他报废工具(“selenium”、“html_dom”等)时,也遇到了同样的问题。我需要的表是javascript的结果。这里的“print web.page().mainFrame().toHtml()”打印js代码,但不打印结果。如何获得javascript的结果?例如,像firefox“查看所选元素的源代码”。@user3003873简短回答-您必须执行javascript或呈现页面才能获得结果。这是一个浏览器任务,很抱歉,可能很明显,但我在这方面完全是新手。我发现关于执行js的内容只有这些。evaluateJavaScript(“alert('Hello');”),但有一个必要的参数-js代码。我没有找到如何执行页面上现有的代码。
web.page().mainFrame().loadFinished.connect(print_content)
# or web.loadFinished.connect(print_content)
web.load(QUrl("http://www.dukascopy.com/swiss/english/marketwatch/calendars/eccalendar/"))
web.show()