C#HTML敏捷包,从div中提取纯文本

时间:2017-03-21 02:15:41

标签: c# html html-agility-pack

我试图从site(lol)拉出一些简短的模糊。

我想要提取的HTML是在下面。

<div class="field field-name-field-body-medium field-type-text-long field-label-hidden">
The community comics collaboration is back for another heaping helping of Academy fun!
</div>

我正在使用的代码无效。

var shortBio = doc.DocumentNode.Descendants("div").Where(p => p.Attributes.Contains("class") && p.Attributes["class"]
         .Value.Contains("field field - name - field - body - medium field - type - text - long field - label - hidden"));


 for (int i = 0; i < 5; i++)
     {
         blurbs[i] = shortBio.ElementAt(i).ToString();
     }

显然这不起作用,我不知道如何拉文本。我一直在寻找拉动

的信息

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

看起来您的目标div的父级被赋予了类teaser-content,这可能是一个很好的标识符。以下XPath应返回所需的div

//div[@class='teaser-content']/div

然后,您可以从div属性中获取InnerText的内容文本(例如,将SelectSingleNode()替换为SelectNodes(),如果您需要所有 div而不是第一个<)>:

var doc = new HtmlWeb().Load("http://na.leagueoflegends.com/en/news/");
var div = doc.DocumentNode.SelectSingleNode("//div[@class='teaser-content']/div");
Console.WriteLine(div.InnerText);

<强> dotnetfiddle demo

输出

The community comics collaboration is back for another heaping helping of Academy fun!