首页 > 解决方案 > 需要一种不使用正则表达式来提取标题内容的方法

问题描述

我已经看到 html 敏捷包可以派上用场,但我不明白它是如何工作的。这就是我现在获取代码的方式,目前它成功地提取了标题内容,但也获取了更多不需要的内容。

    driver.Manage().Window.Maximize();

    driver.Navigate().GoToUrl(response);

    String sourcePage = driver.PageSource;
    Regex regexHeadings = new Regex("(?<=\\>)(?!\\<)(.*)(?=\\<)(?<!\\>)");
    foreach (Match match in regexHeadings.Matches(sourcePage))
    {
        h1Keywords.Add(match.Value);
        colorOutput(ConsoleColor.White, match.Value);
    }

标签: c#seleniumhtml-agility-pack

解决方案


我建议您在 XPath / CSS 选择器的帮助下使用 HtmlAgility Pack。请参阅此备忘单以获取帮助:https ://devhints.io/xpath

快速示例:

var url = "https://devhints.io/xpath";
var web = new HtmlWeb();
var doc = web.Load(url);

foreach (var heading in doc.DocumentNode.SelectNodes("//h1"))
{
    Console.WriteLine(heading.InnerText);
}

推荐阅读