Ben*_*ker 3 c# html-agility-pack
我想在亚马逊网页上找到最低价格.我们以此网址为例:
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
Run Code Online (Sandbox Code Playgroud)
我想找到最低价格......"新来自"右边的数字.
这是我尝试过的:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我没有得到任何结果.我哪里错了?
您要求具有idsubPrice的节点,但实际上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>
Run Code Online (Sandbox Code Playgroud)
所以,
var lowestPrice = document.DocumentNode.SelectSingleNode("//span[@class='subPrice']");
Run Code Online (Sandbox Code Playgroud)
应该得到你想要的.但是,您提供的示例页面有几个与该模式匹配的节点,因此您需要选择多个节点,然后循环遍历它们以确定哪个节点具有最低的权限.