C#HTML敏捷包,從div中提取純文本

c# html html-agility-pack

我試圖從網站 (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();
     }

顯然這不起作用,我不知道如何拉文本。我一直在尋找拉動的信息

先謝謝你。

一般承認的答案

看起來你的目標div的父級被賦予了類teaser-content ,這可以是一個很好的標識符。以下XPath應返回所需的div

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

然後你可以從InnerText屬性中獲取div的內容文本(例如,用SelectNodes()替換SelectSingleNode() ,如果你想要所有的 div而不是第一個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!


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow