3

Amazonのページで最安値を探しています。この URL を例として使用してみましょう。

http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=9963BB#/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=E999-4701&rh=i%3Aaps%2Ck%3AE999-4701

最安値を知りたい…「new from」の右側の数字。

これが私が試したことです:

        using (TextWriter tw = new StreamWriter(@"D:\AmazonUrls.txt"))
        {
            foreach (string item in list)
            {
                var webGet = new HtmlWeb();
                var document = webGet.Load(item);
                var lowestPrice = document.DocumentNode.SelectSingleNode("//span[@id='subPrice']");
                if (lowestPrice != null)
                {
                    Console.WriteLine(lowestPrice);                
                }

            }           
        }

私は何の結果も得ていません。どこが間違っていますか?

4

1 に答える 1

6

subPriceのノードを要求してidいますが、実際classにはsubPriceがあります。

<span class="subPrice">
        <a href="http://www.amazon.com/gp/offer-listing/B001BA0W06/ref=sr_1_6_olp?ie=UTF8&qid=1334090832&sr=8-6&condition=new">5 new</a>
    from <span class="price">$245.90</span></span>

それで、

var lowestPrice = document.DocumentNode.SelectSingleNode("//span[@class='subPrice']");

あなたが望むものを手に入れるべきです。ただし、提供するサンプルページには、そのパターンに一致するノードがいくつかあるため、複数のノードを選択してからそれらをループして、プライバシーが最も低いノードを決定する必要があります。

于 2012-04-10T20:49:18.377 に答える