2009-10-21 66 views
1

我需要找到一種方法來編寫將連接到網站並從網站讀取動態生成的數據的程序(使用任何語言)。如何讀取/解析動態生成的網頁內容?

請注意,它是動態生成的 - 它不足以獲得源html,因爲我感興趣的數據是通過JavaScript引用後端代碼生成的。所以當我查看網頁源時,我看不到數據。 (例如,去谷歌搜索,檢查搜索結果頁面的源代碼,瀏覽器顯示的數據很少反映在源代碼中 - 大部分是動態生成的,我需要一些方法以訪問此數據。)

回答

1

選擇包含HTML呈現器(例如.NET和WebBrowser控件)的語言和環境。使用HTML渲染器獲取URL並在內存中生成HTML DOM(確保已啓用腳本)。渲染器完成其工作後,閱讀HTML DOM的內容。

例(你需要做這System.Windows.Form衍生類內):

WebBrowser browser = new WebBrowser(); 
browser.Navigate("http://www.google.com"); 
HtmlDocument document = browser.Document; 
// extract what you want from the document 
0

我曾經有一個Perl程序訪問Mapguide.com從一個位置獲取驅動方向到另一個位置。我解析了返回的頁面並保存到數據庫。如果源不改變它們的格式,那就OK。問題是源格式經常改變,你的解析器也需要改變。

0

一個簡單的想法:如果我們在談論AJAX,那麼您可以在動態數據中查找網址。然後,您可以在您正在討論的頁面上使用JavaScript重新設置此格式。

0

如果你有Firefox/greasemonkey製作DOM自卸車應該是一件簡單的事情。