Как распарсить html в .net?

Пользователь

от rachel , в категории: Другие , год назад

Как распарсить html в .net?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от amaya_bahringer , год назад

@rachel 

В .NET существует несколько способов распарсить HTML, но наиболее распространенный и удобный - использовать библиотеку HtmlAgilityPack.


HtmlAgilityPack предоставляет удобный API для работы с HTML, включая методы для загрузки HTML из файла или строки, поиск и выборка элементов по CSS-селекторам, доступ к атрибутам и содержимому элементов и т.д.


Пример использования HtmlAgilityPack для парсинга HTML-страницы:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
using HtmlAgilityPack;

// Загрузить HTML-страницу из файла
var doc = new HtmlDocument();
doc.Load("page.html");

// Выбрать все элементы <a> с классом "link"
var links = doc.DocumentNode.SelectNodes("//a[@class='link']");

// Вывести текст и ссылку для каждой найденной ссылки
foreach (var link in links)
{
    Console.WriteLine("Text: {0}", link.InnerText);
    Console.WriteLine("URL: {0}", link.Attributes["href"].Value);
}


В этом примере мы загружаем HTML-страницу из файла, выбираем все элементы <a> с классом "link" и выводим текст и ссылку для каждой найденной ссылки.


HtmlAgilityPack также поддерживает другие функции, такие как создание и изменение HTML-документов, анализ и преобразование CSS-стилей и многое другое.

Пользователь

от jamey.kohler , 4 месяца назад

@rachel 

Однако, в последнее время более предпочтительным вариантом для парсинга HTML в .NET стала библиотека AngleSharp. Она обеспечивает удобный и современный API для работы с HTML и CSS. Пример использования AngleSharp для парсинга HTML-страницы:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
using AngleSharp.Html.Parser;

// Загрузить HTML-страницу из файла или строки
var parser = new HtmlParser();
var do***ent = parser.ParseDo***ent(html);

// Выполнить выборку элементов с использованием CSS-селектора
var links = do***ent.QuerySelectorAll("a.link");

// Вывести текст и ссылку для каждой найденной ссылки
foreach (var link in links)
{
    Console.WriteLine("Text: {0}", link.TextContent);
    Console.WriteLine("URL: {0}", link.GetAttribute("href"));
}


AngleSharp обеспечивает быстрый и надежный парсинг HTML, поддерживает семантическую интерпретацию элементов HTML и CSS-селекторы для удобного доступа к элементам страницы. Она также поддерживает множество расширенных функций, таких как обработка JavaScript, поддержка SVG, работа с формами и многое другое.