Html Agility Pack:查找评论节点

Posted

技术标签:

【中文标题】Html Agility Pack:查找评论节点【英文标题】:Html Agility Pack: Find Comment Node 【发布时间】:2011-04-20 03:24:29 【问题描述】:

我正在抓取一个网站,该网站使用 javascript 来使用 html Agility 包动态填充网站的内容。

基本上,我正在搜索 XPATH "\\div[@class='PricingInfo']",但该 div 节点正在通过 Javascript 写入 DOM。

所以,当我通过 Html Agility 包加载页面时,找不到上面提到的 XPATH。

原来在我要解析的特定脚本块之前有一个注释。

<!--Module 328 Buying Options Table-->
<script type="text/javascript" language="JavaScript">
    var data = 
        price: 30.00
    
</script>

对于这个站点,有许多脚本块,因此我需要通过查找此自动生成的评论 &lt;!--Module 328 Buying Options Table--&gt; 来缩小范围,并且该节点的兄弟节点将是正确的脚本块。

知道如何搜索特定评论然后获取相邻的脚本块吗?

谢谢!

【问题讨论】:

+1 表示不使用正则表达式! 【参考方案1】:
htmlDoc.DocumentNode.SelectSingleNode("//comment()[contains(., 'Buying Options')]/following-sibling::script")

【讨论】:

就像一个魅力。谢谢!现在,我需要一种方法来解析 Javascript 对象。 只是再添加一件事。一旦我得到脚本注释,我就能够使用正则表达式解析出我需要的信息。谢谢!

以上是关于Html Agility Pack:查找评论节点的主要内容,如果未能解决你的问题,请参考以下文章

Html Agility Pack/C#:如何创建/替换标签?

Html Agility Pack SelectSingleNode 在迭代中总是给出相同的结果?

csharp Html Agility Pack #CSharp #HtmlParsing

HTML Agility Pack 条带标签不在白名单中

使用 HTML Agility Pack 替换 HTML div InnerText 标签

如何使用 Html Agility Pack 使请求超时