国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

使用C#編寫的Html Agility Pack來下載比特幣價(jià)格
P粉156532706
P粉156532706 2023-09-05 17:17:03
0
1
965
<p>我需要使用Html Agility Pack從https://coinmarketcap.com/currencies/bitcoin/獲取比特幣價(jià)格。我正在使用這個(gè)例子,它運(yùn)行良好:</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>我嘗試了下面的代碼,但它返回"對(duì)象引用未設(shè)置為對(duì)象的實(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

全部回復(fù)(1)
P粉729518806

TLDR:

  1. 你需要告訴 HtmlWeb 解壓響應(yīng)(或使用合適的HTTP客戶端)
  2. 你需要修復(fù)XPath選擇器

顯然,SelectSingleNode()調(diào)用返回null,因?yàn)樗也坏焦?jié)點(diǎn)。

在這種情況下,檢查加載的HTML是有幫助的。你可以通過獲取htmlDoc.DocumentNode.InnerHtml的值來做到這一點(diǎn)。我嘗試過這樣做,生成的“HTML”是無意義的。

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

如果你堅(jiā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");

請(qǐng)注意,你要查找的元素的類實(shí)際上是priceValue (末尾有一個(gè)空格字符),頁面中還有另一個(gè)類為priceValuediv。不過,這是另一個(gè)問題,你應(yīng)該最終能夠找到一個(gè)更健壯的選擇器。也許可以嘗試這樣:

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