亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

使用C#編寫的Html Agility Pack來下載比特幣價格
P粉156532706
P粉156532706 2023-09-05 17:17:03
0
1
964
<p>我需要使用Html Agility Pack從https://coinmarketcap.com/currencies/bitcoin/取得比特幣價格。我正在使用這個例子,它運行良好:</p> <pre class="brush:php;toolbar:false;">var html = @"http://html-agility-pack.net/"; HtmlWeb web = new HtmlWeb(); var htmlDoc = web.Load(html); var node = htmlDoc.DocumentNode.SelectSingleNode("//head/title"); Console.WriteLine("Node Name: " node.Name "\n" node.OuterHtml);</pre> <p>XPath為:<code>//*[@id="__next"]/div/div[1]/div[2]/div/div[1]/div[2]/div/ div[2]/div[1]/div</code></p> <p>HTML代碼:</p> <pre class="brush:php;toolbar:false;"><div class="priceValue "><span>$17,162.42</span></div></pre> <p>我嘗試了下面的程式碼,但它返回"物件引用未設(shè)定為物件的實例":</p> <pre class="brush:php;toolbar:false;">var html = @"https://coinmarketcap.com/currencies/bitcoin/"; HtmlWeb web = new HtmlWeb(); var htmlDoc = web.Load(html); var node = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='priceValue']/span"); Console.WriteLine("Node Name: " node.Name "\n" node.InnerText);`</pre></p>
P粉156532706
P粉156532706

全部回覆(1)
P粉729518806

TLDR:

  1. 你需要告訴 HtmlWeb 解壓縮回應(yīng)(或使用適當(dāng)?shù)腍TTP客戶端)
  2. 你需要修復(fù)XPath選擇器

顯然,SelectSingleNode()呼叫回傳null,因為它找不到節(jié)點。

在這種情況下,檢查載入的HTML是有幫助的。你可以透過取得htmlDoc.DocumentNode.InnerHtml的值來做到這一點。我嘗試過這樣做,生成的“HTML”是無意義的。

原因是HtmlWeb預(yù)設(shè)不解壓縮它收到的回應(yīng)。有關(guān)詳細(xì)信息,請參見github問題。如果你使用了一個合適的HTTP客戶端(像這個),或者如果HtmlAgilityPack開發(fā)人員更加積極,我認(rèn)為你不會遇到這個問題。

如果你堅持使用HtmlWeb,你的程式碼應(yīng)該如下所示:

const string html = @"https://coinmarketcap.com/currencies/bitcoin/";
        
var web = new HtmlWeb
{
    AutomaticDecompression = DecompressionMethods.GZip
};
HtmlDocument doc = web.Load(html);

HtmlNode node = doc.DocumentNode.SelectSingleNode("http://div[@class='priceValue ']/span");

請注意,你要找的元素的類別其實是priceValue (最後有一個空格字元),頁面中還有另一個類別為priceValue div。不過,這是另一個問題,你應(yīng)該最終能夠找到一個更健壯的選擇器。也許可以嘗試這樣:

HtmlNode node = doc.DocumentNode.SelectSingleNode("http://div[contains(@class, 'priceSection')]//div[contains(@class, 'priceValue')]/span");
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板