如何读取/解析动态生成的Web内容?

时间:2009-10-21 12:04:51

标签: dynamic data-generation

我需要找到一种方法来编写一个程序(用任何语言),它将连接到一个网站,并从网站上读取动态生成的数据。

请注意,它是动态生成的 - 它不足以获取源html,因为我感兴趣的数据是通过引用后端代码的javascript生成的。所以当我查看网页来源时,我看不到数据。 (例如,转到谷歌,然后进行搜索。检查搜索结果页面上的源代码。浏览器显示的数据很少反映在源代码中 - 大部分是动态生成的。我需要一些方法访问这些数据。)

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我曾经有一个Perl程序访问Mapguide.com以获取从一个位置到另一个位置的驱动器方向。我解析了返回的页面并保存到数据库。如果源从不改变它们的格式,那就没关系。问题是源格式经常变化,你的解析器也需要改变。

答案 2 :(得分:0)

一个简单的想法:如果我们谈论的是AJAX,你可以查找动态数据的网址。然后你可以使用你正在谈论的页面上的javascript重新格式化。

答案 3 :(得分:0)

如果你有Firefox / greasemonkey制作DOM转储器应该是一件简单的事情。