如何确定html中的特定类是否存在,使用c#中的Html Agilty Pack

时间:2017-12-06 09:32:01

标签: c# winforms html-agility-pack

我想知道网页中是否存在按编号划分的特定产品。那个页面有一个搜索栏,我确定了html类" product-thumb"仅在搜索结果为TRUE时出现。所以我想在IF语句中使用该类作为TRUE和FALSE的示例。我使用html agilty pack来完成这项任务,这里是我已经拥有的代码,但它不起作用,总是返回FALSE。我google了很多,找不到合适的解决方案,这就是为什么我不在这里工作代码的原因。我有字符串" url"像这样,因为我会列出这样的许多数字来检查每个产品,一个大循环的预备,但仍然不能使这个测试代码工作。提前谢谢。

        string url = "90551";
        HtmlWeb web = new HtmlWeb();
        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        string s = "http://examplewebpage" + url;
        doc = web.Load(s);
        System.Threading.Thread.Sleep(5000);

        if (doc.DocumentNode.HasClass("//*[@class=\"product-thumb") == true)
        {
            webBrowser1.DocumentText = url + " Yes";
        }
        else
            webBrowser1.DocumentText = url + " No";

1 个答案:

答案 0 :(得分:1)

您只需搜索包含'product-thumb'类

的任何项目
var containsProductThumb = doc.DocumentNode
    .Descendants()
    .Any( d => 
        d.Attributes.Contains("class")
        &&
        d.Attributes["class"].Value.Contains("product-thumb")
    );
if (containsProductThumb)
    webBrowser1.DocumentText = url + " Yes";
else
    webBrowser1.DocumentText = url + " No";