我目前使用嘗試以使用HtmlAgilityPack從HTML頁面提取特定鏈接。我嘗試使用純C#來強制我的方式,但結果是一個真正的痛苦。這些鏈接都在<div>
裏面,所有標籤都具有相同的類別。下面是我有:使用HtmlAgilityPack檢索特定網址C#
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
我需要包含這些<a>
內標籤嵌套在<div class="acTrigger">
標籤內。這很簡單,如果每個<a>
共享獨特的類,但不幸的是只有<div>
標籤有類。我需要做的是抓住這些href
中的每一個並將它們存儲起來,以便稍後可以檢索它們,轉到每個頁面並從每個頁面檢索更多信息。我只需要在正確的方向上輕輕一點就可以克服這個麻煩,那麼我也應該能夠完成其他頁面。我以前沒有使用過這個HtmlAgilityPack的經驗,我發現的所有例子似乎都想從頁面中提取所有的URL,而不是特定的。我只需要一個鏈接到一個例子或文檔,任何幫助非常感謝。
完美答案!/a讓我進入標記,並且node.GetAttributeValue爲我抽出字符串。太感謝了!你知道任何有用的信息來了解SelectNodes的語法是如何工作的嗎?這有點怪異 –
@KevinD如果我記得正確,它使用Xpath。 https://www.w3schools.com/xml/xpath_intro.asp – Tim