【发布时间】:2014-09-02 22:26:57
【问题描述】:
我正在尝试学习一些基本的抓取,并且感谢这个网站,我已经能够学习很多新东西,但现在我遇到了这个问题......这是我正在使用的代码:
var web = new HtmlWeb();
var doc = web.Load("url");
var nodes = doc.DocumentNode.SelectNodes("//*[@id='hotellist_inner']/div");
StreamWriter output = new StreamWriter("out.txt");
if (nodes != null)
{
foreach (HtmlNode item in nodes)
{
if (item != null && item.Attributes["data-recommended"] != null)
{
string line = "";
var nome = item.SelectSingleNode(".//h3/a").InnerText;
var rating = item.SelectSingleNode(".//span[@class='rating']").InnerText;
var price = item.SelectSingleNode("./div[2]/div[3]/div[2]/table/tbody/tr/td[4]/div/strong[1]");
var discount = item.SelectSingleNode("./div[2]/div[3]/div[2]/table/tbody/tr/td[4]/div/div[1]");
line = line + nome + "," + rating + "," + price + "," + discount;
Console.WriteLine(line);
output.WriteLine(line);
}
}
}
前两项(名称和评级)一切正常,但谈到价格和折扣时,我得到的结果是空的。我已经用 chrome scraper 分析了页面(这里是 link),它使用我使用的 xpath 很容易得到结果。我不明白我做错了什么。 任何帮助,将不胜感激! :D
【问题讨论】:
标签: c# html web-scraping html-agility-pack