【发布时间】:2017-07-14 13:16:26
【问题描述】:
我目前尝试使用 HtmlAgilityPack 从 html 页面中提取特定链接。我尝试使用普通的 C# 来强行进入,但结果证明这真的很痛苦。链接都在 <div> 标记内,它们都具有相同的类。这是我所拥有的:
HtmlWeb web = new HtmlWeb();
HtmlDocument html = web.Load(url);
//this should select only the <div> tags with the class acTrigger
foreach (HtmlNode node in html.DocumentNode.SelectNodes("//div[@class='acTrigger']"))
{
//not sure how to dig further in to get the href values from each of the <a> tags
}
网站代码看起来像这样
<li>
<div class="acTrigger">
<a href="/16014988/d/" onclick="return queueRefinementAnalytics('Category','Battery')">
Battery <em> (1)</em>
</a>
</div>
</li>
<li>
<div class="acTrigger">
<a href="/15568540/d/" onclick="return queueRefinementAnalytics('Category','Brakes')">
Brakes <em> (2)</em>
</a>
</div>
</li>
<li>
<div class="acTrigger">
<a href="/11436914/d/1979-honda-ct90-cables-lines" onclick="return queueRefinementAnalytics('Category','Cables/Lines')">
Cables/Lines <em> (1)</em>
</a>
</div>
</li>
这个页面上有很多链接,但我需要的href 包含在那些嵌套在<div class="acTrigger"> 标记内的<a> 标记内。如果每个<a> 共享唯一的类会很简单,但不幸的是只有<div> 标记有类。我需要做的是获取每个hrefs 并存储它们,以便我以后可以检索它们,转到每一页,并从每一页检索更多信息。我只需要朝着正确的方向轻推以克服这个困难,然后我应该也可以完成其他页面。我以前没有使用此 HtmlAgilityPack 的经验,并且我发现的所有示例似乎都想从页面中提取所有 URL,而不是特定的 URL。我只需要一个示例或文档的链接,非常感谢任何帮助。
【问题讨论】:
标签: c# html url html-agility-pack