私は現在、を試みて、HtmlAgilityPackを使用してHTMLページから特定のリンクを抽出しています。私は普通のC#を使ってやりましたが、それは本当の痛みであることが判明しました。リンクはすべて、同じクラスを持つ<div>
タグ内にあります。HtmlAgilityPackで特定のURLを取得する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>
タグだけがクラスを持っています。私がしなければならないのは、それらのそれぞれをつかみ、後でそれらを取り出すことができるようにそれらを保管し、各ページに行き、各ページからより多くの情報を検索することです。私はちょうど正しい方向にこのこぶを乗り越えるためにナッジが必要です、そして、私は他のページを同様に行うことができるはずです。私はこのHtmlAgilityPackの以前の経験はなく、特定の例ではなくページからすべてのURLを抽出したいと思うすべての例があります。私は例やドキュメンテーションへのリンクが必要です。どんな助けでも大歓迎です。
完璧な答え!//私はタグに入るとnode.GetAttributeValueは私のために文字列を引っ張った。感謝万円! SelectNodesの構文がどのように機能するかを知るには、良い情報源を知っていますか?それはちょっと振った –
@KevinD私が正しく思い出すと、それはXpathを使用します。 https://www.w3schools.com/xml/xpath_intro.asp – Tim