J'essaie de trouver le prix le plus bas sur les pages Amazon. Utilisons cette url comme exemple:
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
Je veux trouver le prix le plus bas ... le nombre à droite de "nouveau de".
Voici ce que j'ai essayé:
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);
}
}
}
Je n'obtiens aucun résultat. Où vais-je mal?
Vous demandez des nœuds avec un id
de subPrice, mais c'est en fait une class
qui a 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>
donc,
var lowestPrice = document.DocumentNode.SelectSingleNode("//span[@class='subPrice']");
devrait vous obtenir ce que vous voulez. Cependant, la page d'exemple que vous donnez a plusieurs nœuds qui correspondent à ce modèle, vous devez donc sélectionner plusieurs nœuds, puis les parcourir pour décider lequel a les privilèges les plus bas.