如何使用HtmlAgilityPack获取特定数据

时间:2015-04-25 04:40:21

标签: c# web-scraping html-agility-pack

我正在使用HtmlAgilityPack来删除数据。 这是我用来废弃数据的链接 This Link 结构是那样的

<div id="left">
  <h2>
   <i id="bn7483" class="fa fa-volume-up fa-lg in au" title="Speak!"/>
   <span class="in">(dhaarmika) </span>
   <div class="row">
    ...

我需要两个数据,其中一个是“(dhaarmika)”,另一个是使用此代码的“bn7483”中的id

HtmlAgilityPack.HtmlDocument doc2 = web2.Load("http://www.shabdkosh.com/bn/translate/ধার্মিক");
HtmlNodeCollection nodes = doc2.DocumentNode.SelectNodes("//span[@class='in']");

我能够获得第一个数据“(dhaarmika)”。

但我无法得到第二个数据。

有谁能告诉我如何获取第二个数据???

1 个答案:

答案 0 :(得分:1)

另一种可能的方法是选择您已找到的<span>的前一个兄弟:

var doc2 = new HtmlWeb().Load("http://www.shabdkosh.com/bn/translate/ধার্মিক");
var span = doc2.DocumentNode.SelectSingleNode("//span[@class='in']");
var i = node.SelectSingleNode("preceding-sibling::i[@id]")
            .Attributes["id"]
            .Value;