2009-11-19 86 views
0

如何从提取的网页中提取数据? 其中java脚本会随着时间更新数据。 是否有可能编写可从网页Java脚本访问变量的用户脚本? 请建议可能的方法来实现这一点。如何解析包含javascript的呈现网页

+0

你在哪里试图做到这一点,客户端或服务器端? 如果在客户端和您正在使用浏览器,Greasemonkey应该这样做。 – vsr 2009-11-19 18:59:07

+0

我想在客户端,我想提取数据。 – kanna 2009-11-20 11:23:08

回答

2

根据Turing's Halting Problem Theorem,你不能。

这就是我们说JavaScript时是一种Turing complete语言的意思。唯一的办法是执行JavaScript并让它呈现页面。

+0

是不是可以使用cURL并获取渲染页面? – 2013-07-10 11:33:56

+0

cURL只做第一部分工作:HTTP获取HTML/CSS/JS代码。之后,浏览器解析/呈现HTML并执行JavaScript代码。 HTML渲染部分不是必需的(因为问题是关于选取数据,而不是截图),但是JavaScript不断更新它,所以为了获得这些更新,您必须执行JavaScript代码。 – Javier 2013-07-10 14:07:53

+0

请注意,Zenon的答案显示的恰恰是执行JavaScript。实际上是在您的程序控制下编写一个小型浏览器。 – Javier 2013-07-10 14:10:11

2

它取决于你的编程语言。

在C#中,您可以使用webbrowser control,然后使用Webbrowser.Document属性获取HTMLDocument对象以获取当前标记。 要在文档中调用JavaScript函数,请使用Browser控件的ObjectForScripting属性。