我需要找到一种方法来编写一个程序(用任何语言),它将连接到一个网站,并从网站上读取动态生成的数据。
请注意,它是动态生成的 - 它不足以获取源html,因为我感兴趣的数据是通过引用后端代码的javascript生成的。所以当我查看网页来源时,我看不到数据。 (例如,转到谷歌,然后进行搜索。检查搜索结果页面上的源代码。浏览器显示的数据很少反映在源代码中 - 大部分是动态生成的。我需要一些方法访问这些数据。)
答案 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转储器应该是一件简单的事情。