HTML AGILITY PACK解析Div块

.net c# html html-agility-pack

我需要从互联网商店解析物品 - “我需要他们的名字和价格。每个项块都位于这些项目的div-catalog中的不同div中。
所以我尝试了这个,它有点工作,但我更愿意在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");
            }
        }

一般承认的答案

由于SelectNodes使用的是XPATH SelectNodes ,因此您可以使用“|”在类过滤器中使用union ,这将导致单个集合循环。请注意,您仍然需要检查在for循环中实际选择的元素。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因