【问题标题】:HtmlAgilityPack select a specific number of nodesHtmlAgilityPack 选择特定数量的节点
【发布时间】:2014-09-04 04:09:24
【问题描述】:

考虑以下实现 HAP 以从给定网站中选择一些 HTML 节点的 C# 语句。

var nodes = page.DocumentNode.SelectNodes("//ul[contains(@class,'relatedProductsGrid')]//div[@class='product']//a");

在给定的页面上,选择器为页面返回大约 20 个节点,我的问题是,如果我想限制它抓取的节点数量,我该怎么做?

所以本质上,我想“选择 3 个节点而不是 20 个”,但以最简洁的方式,也许有一个 LINQ 表达式可以用来简单地提出我的请求?

谢谢大家

【问题讨论】:

  • 只需在末尾添加.Take(3)

标签: c# linq dom html-agility-pack


【解决方案1】:

您可以使用 XPath 中的position() 函数来限制项目的数量,方式如下:

//ul[contains(@class,'relatedProductsGrid')]//div[@class='product']//a[position() >= 1 and position() < 4]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多