Как разделить текст внутри HTML с помощью html-agility-pack или Regex в проекте C #? - PullRequest
1 голос
/ 24 июня 2019

Я использую Html Agility Pack в Windows Form с C # и получаю хорошие результаты при поиске html-страниц.

Однако запрос возвращает весь HTML-код страницы, и мне нужно только содержимое поста, так как остальные являются ненужными ссылками и текстами.

Содержание, которое имеет значение после прочтения HTML, находится между:
<span class = "update-date"> 23/06/2019 16h17 '<' / span '>' <'/ span'> '' <'/ p'> '

и '<' p class = "col-lg-24" '>'.

Я пытался использовать регулярные выражения, но мне это не удалось.

Я использую неправильные .SelectNodes для этого случая?

Вот пример: (Пример на основе https://dotnetfiddle.net/ltDevV)

// @nuget: HtmlAgilityPack 
using System; 
using System.Xml; 
using HtmlAgilityPack;

public class Program
{
    public static void Main()
    { 
        var html = 
    @"https://economia.uol.com.br/noticias/redacao/2019/06/23/aposentadoria-pensao-camara-deputados.htm";

        HtmlWeb web = new HtmlWeb();

        var htmlDoc = web.Load(html);

        var htmlNodes = htmlDoc.DocumentNode.SelectNodes("//p");

        if(htmlNodes!=null)
        {

            foreach (var node in htmlNodes)
            {               
                Console.WriteLine(node.OuterHtml);              
            }
        }
        else
        {
            Console.WriteLine("Oh OK.");    
        }
    }
}

Я надеюсь, что смогу получить в итоге только контент, который находится между тегами
<span class = "update-date"> 23/06/2019 16:17 '<' / span '>' <'/ span'> '' < '/ p'> 'e' <'p class = "col-lg-24"'> '.

...