14

我正在写一个小下载机器人,它正在为它自己搜索较低层的链接。

我需要找到的是 html 页面中的所有链接(.jpg 文件的链接以及.pgn、.pdf、.html、.... 文件的链接)

我正在使用 html-agilitypack 查找所有 a-href 链接。

示例代码:

foreach (HtmlNode link in htmlDocument.DocumentNode.SelectNodes("//a[@href]"))
{
    HtmlAttribute attribute = link.Attributes["href"];
    links.Add(attribute.Value);
}

但我也想找到数据网址。

我必须使用什么 XPath 语法来查找数据 URL。htmlcode 中的示例数据 url:

    <div class="cbreplay" data-url="2012\edmonton\partien.pgn"></div>

我需要这个示例中的“2012\edmonton\partien.pgn”。我如何使用 XPath 语法来实现这一点?

最好的问候,如果我犯了一些严重的错误,请告诉我。这是我有史以来的第一个问题。

4

1 回答 1

23

以下应该做你想要的:

foreach (HtmlNode divNode in htmlDocument.DocumentNode.SelectNodes("//div[@data-url]"))
{
    HtmlAttribute attribute = divNode.Attributes["data-url"];
    links.Add(attribute.Value);
}

实际上,该语句//div[@data-url]应选择具有 data-url 属性的所有节点。然后我们拉出这个属性。

如果除具有此属性的 div 之外还有其他节点,那么//*[@data-url]应该可以解决问题。

于 2012-07-10T08:21:48.427 回答