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

发布于 2024-08-08 08:48:24 字数 222 浏览 3 评论 0原文

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

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

I need to find a way to write a program (in any language) that will connect to a website and read dynamically generated data from the website.

Note that it's dynamically generated--it's not enough to get the source html, because the data I'm interested in is generated via javascript that references back-end code. So when i view the webpage source, I can't see the data. (For example, go to google, and do a search. Check the source code on the search results page. Very little of the data your browser is displaying is reflected in the source--most of it is dynamically generated. I need some way to access this data.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

埋葬我深情 2024-08-15 08:48:25

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

I used to have a Perl program to access Mapguide.com to get the drive direction from one location to another location. I parsed the returned page and save to database. If the source never change their format, it is OK. the problem is the source format often change, your parser also need change.

纵山崖 2024-08-15 08:48:25

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

A simple thought: if we're talking about AJAX, you can rather look up the urls for the dynamic data. Then you can use the javascript on the page you're talking about to reformat this.

暮倦 2024-08-15 08:48:25

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

If you have Firefox/greasemonkey making a DOM dumper should be a simple matter.

童话 2024-08-15 08:48:24

选择包含 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

Pick a language and environment that includes an HTML renderer (e.g. .NET and the WebBrowser control). Use the HTML renderer to get the URL and produce an HTML DOM in memory (making sure that scripting is enabled). Read the contents of the HTML DOM after the renderer has done its work.

Example (you'll need to do this inside a System.Windows.Form derived class):

WebBrowser browser = new WebBrowser();
browser.Navigate("http://www.google.com");
HtmlDocument document = browser.Document;
// extract what you want from the document
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文