Нужен способ извлечь заголовки контента без использования regEx - PullRequest
0 голосов
/ 23 февраля 2020

Я видел, что пакет ловкости 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);
    }

1 Ответ

0 голосов
/ 23 февраля 2020

Я бы порекомендовал вам использовать HtmlAgility Pack с помощью селекторов XPath / CSS. См. Эту таблицу для справки: 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);
}
...