从站点中提取特定 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);
我正在尝试从网站中提取链接,我想要的 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);