C# HTML 敏捷包,从 div 中提取纯文本
C# HTML agility pack, pulling plain text from a div
我正试图从 site 中提取简短的小广告(笑)。
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();
}
显然这不起作用,我不确定如何提取文本。我一直在寻找有关拉
的信息
提前谢谢你。
看起来你的目标 div
的父级被赋予了 class teaser-content
这可能是一个很好的标识符。下面的 XPath 应该 return 想要的 div
:
//div[@class='teaser-content']/div
然后你可以从InnerText
属性中获取div
的内容文本,例如(将SelectSingleNode()
替换为SelectNodes()
并遍历结果,如果你想要 all div
s 而不是第一个):
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);
输出:
The community comics collaboration is back for another heaping helping of Academy fun!
我正试图从 site 中提取简短的小广告(笑)。
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();
}
显然这不起作用,我不确定如何提取文本。我一直在寻找有关拉
的信息提前谢谢你。
看起来你的目标 div
的父级被赋予了 class teaser-content
这可能是一个很好的标识符。下面的 XPath 应该 return 想要的 div
:
//div[@class='teaser-content']/div
然后你可以从InnerText
属性中获取div
的内容文本,例如(将SelectSingleNode()
替换为SelectNodes()
并遍历结果,如果你想要 all div
s 而不是第一个):
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);
输出:
The community comics collaboration is back for another heaping helping of Academy fun!