2009-10-21 67 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自卸车应该是一件简单的事情。