Я пытаюсь вытащить короткие небольшие рекламные ролики с сайта (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
Затем вы можете получить текст содержимого div
из свойства InnerText
, например (замените SelectSingleNode()
на SelectNodes()
и итерации по результату, если вы хотите, чтобы все 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!