1

I need to parse dynamically generated HMTL code using a HTML Agility pack.

For example this code:

<div class="navigation_noClass"> There are 43 articles </div>

is not displayed in the Page Source option of the web browser, i.e. this code can only be visible using some inspect tools such as Firebug, Inspect Context ...

4

1 回答 1

0

目前,听起来您正在将接收到的 HTML 直接输入到 Agility 包中,因此错过了常规浏览器会执行的一些(重要?)步骤。即 Javascript 和/或 CSS 的执行。

执行 Javascript 的选项有很多,但大多数合理的“自包含”选项都需要您重新创建 DOM 和相关功能。不是微不足道的。

然后是 CSS 包含内容的那些场合(例如 Before / After 伪元素)。据我所知,在浏览器之外的 HTML 源代码上模拟 CSS 行为的库并不多。

所有这一切意味着,如果您真的需要捕获 Javascript 和/或 CSS 执行的输出,那么将浏览器直接连接到您的应用程序处理管道(例如基于 Chromium 的产品之一)并询问其 DOM 可能是最简单的(以类似于许多功能 Web 测试套件的方式)。

注意:如果这是一个规模很大的服务器式处理任务,您可能希望将此类处理分离到专用服务器/应用程序池/进程上,以使您的应用程序在适当的正常运行时间和/或内存中获得战斗机会。

于 2012-04-02T01:15:19.893 回答