从站点中提取特定 link

Pulling a specific link from a site

我正在尝试从网站中提取链接,我想要的 HTML 如下所示:

<div class="default-2-3">
<h4>
  <a href="/en/news/esports/esports-editorial/na-lcs-week-8-tease-tsm">NA LCS Week 8 Tease: TSM</a>
 </h4>

我的测试代码如下:

string mainURL = "http://na.leagueoflegends.com/en/news/";
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(mainURL);

var findClass = doc.DocumentNode.Descendants("div")
                   .Where(d => d.Attributes.Contains("class") && 
                               d.Attributes["class"].Value.Contains("default-2-3"));
MessageBox.Show(findClass.ElementAt(1).ToString());

目前消息框显示:

HtmlAgilityPack.htmlNode

我的代码基于此 finding specific link from website,我是使用 HTMLAgilityPack 而不仅仅是复制 XPath 的新手。

作为参考,我试图提取信息的站点是:http://na.leagueoflegends.com/en/news/

您即将完成最后一步。再多一点。

var findClass = doc.DocumentNode.Descendants("div").Where(d => d.Attributes.Contains("class") && d.Attributes["class"].Value.Contains("default-2-3")).Select(_ => _.Descendants("a").FirstOrDefault()?.Attributes["href"]);

其实有不止一个div相同class=default-2-3 你正在尝试获取第一个你可以通过这样做获得的:

var href = doc.DocumentNode.SelectNodes(".//div[@class='default-2-3']//h4//a[@href]").Select(x=>x.Attributes["href"].Value);