我需要解析互联网商店的商品 - 我需要他们的名字和价格。每个项目块位于这些项目的div
内的不同div-catalog
。
所以我尝试了这个,它有点工作,但我更愿意在1循环中解析名称和价格。我怎么能这样做?谢谢!
var url = "http://bestaqua.com.ua/catalog/filtry-obratnogo-osmosa";
HtmlWeb web = new HtmlWeb();
HtmlDocument HtmlDoc = web.Load(url);
var RootNode = HtmlDoc.DocumentNode;
foreach (HtmlNode node in
HtmlDoc.DocumentNode.SelectNodes("//div[@class='catalog_blocks']"))
{
foreach (HtmlNode item_name in
node.SelectNodes("//div[@class='catalog_blocks-item-name']"))
{
string name = item_name.InnerText;
System.Diagnostics.Debug.Write("NAME :" + name + "\n" );
}
foreach (HtmlNode item_price in
node.SelectNodes("//span[@class='price-new']"))
{
string price = item_price.InnerText;
System.Diagnostics.Debug.Write("PRICE: " + price + "\n");
}
}
答案 0 :(得分:1)
由于SelectNodes
正在使用XPATH - 表达式,因此您可以在类过滤器中使用“{”来使用“|”,这将导致单个集合进行循环。
请注意,您仍然需要检查在for循环中实际选择的元素。