2009-11-19 125 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屬性。