Przejdź do treści stopki
POMOC .NET

Html Agility Pack C# (jak to działa dla programistów)

Potrzeba dynamicznego zarządzania i manipulowania zawartością dokumentów jest powszechna w świecie tworzenia oprogramowania w C#. Programiści często polegają na solidnych bibliotekach, aby zautomatyzować działania takie jak tworzenie raportów PDF i pobieranie danych ze stron internetowych. Artykuł ten omawia prostą integrację IronPDF i HtmlAgilityPack w C# i zawiera przykłady kodu, które pokazują, jak te biblioteki mogą być wykorzystywane do bezproblemowego tworzenia dokumentów PDF i odczytywania tekstu HTML.

IronPDF to bogata w funkcje biblioteka .NET do pracy z plikami PDF. Ponieważ IronPDF pozwala programistom dynamicznie generować pliki PDF z zawartości HTML, adresów URL lub danych surowych, służy jako cenne narzędzie do tworzenia dokumentów, raportowania i wizualizacji danych.

Aby usprawnić generowanie dokumentów w aplikacjach .NET, przyjrzymy się, jak połączyć IronPDF z HtmlAgilityPack. Połączenie tych technologii pozwala programistom na pracę ze zdalnymi systemami, generowanie dynamicznych stron PDF i pobieranie danych przez połączenia sieciowe, jednocześnie zwiększając produktywność i skalowalność w ich programach.

How to Use HtmlAgilityPack in C

  1. Utwórz nowy projekt C#.
  2. Zainstaluj bibliotekę HtmlAgilityPack.
  3. Zaimportuj przestrzeń nazw. Utwórz obiekt.
  4. Zaimportuj dane z adresu URL i zanalizuj HTML.
  5. Pobierz wymagane dane i usuń obiekt.

Wprowadzenie do HtmlAgilityPack

HTML Agility Pack to wszechstronna i potężna biblioteka do analizy HTML dla programistów .NET. Dzięki bogatej kolekcji API programiści mogą łatwo nawigować, zmieniać i pobierać dane z dokumentów HTML. HtmlAgilityPack ułatwia pracę z zawartością HTML programistom na każdym poziomie zaawansowania.

Zdolność HtmlAgilityPack do łagodnego zarządzania nieprawidłowo zorganizowanym lub wadliwym HTML-em jest tym, co czyni go wyjątkowym. Jest idealny do operacji scrapingu online, gdzie jakość znaczników HTML może się różnić, ponieważ używa elastycznego algorytmu analizy, który może przetwarzać nawet najbardziej źle skonstruowany HTML.

Funkcje HtmlAgilityPack

Analiza HTML

Dzięki potężnym funkcjom analizy HTML oferowanym przez HtmlAgilityPack programiści mogą ładować dokumenty HTML z różnych źródeł, w tym plików, adresów URL i ciągów. Dzięki elastycznemu podejściu do analizy może łagodnie obsługiwać błędnie sformatowany lub niepoprawny HTML, co czyni go odpowiednim do działalności scrapingu sieciowego, gdzie jakość znaczników HTML może się różnić.

Manipulacja DOM

Do eksploracji, przeglądania i pracy ze strukturą modelu obiektu dokumentu HTML (DOM), HAP oferuje przyjazne dla użytkownika API. Elementy HTML, atrybuty i węzły tekstowe mogą być programowo dodawane, usuwane lub modyfikowane przez programistów, pozwalając na dynamiczną manipulację zawartością HTML.

Obsługa XPath i LINQ

Do wybierania i zapytań komponentów HTML, HtmlAgilityPack obsługuje LINQ (Language Integrated Query) oraz wyszukiwania według składni XPath. Zapytania wyrażeń XPath oferują silną i łatwą w zrozumieniu składnię do wyboru elementów w dokumencie HTML w zależności od ich atrybutów, tagów lub hierarchii. Dla programistów przyzwyczajonych do pracy z LINQ w C#, zapytania LINQ oferują znajomą składnię zapytań, która ułatwia gładkie zintegrowanie z innymi komponentami .NET.

Rozpoczynanie pracy z HtmlAgilityPack

Konfiguracja HtmlAgilityPack w projektach C

Biblioteka bazowa HtmlAgilityPack jest dostarczana w jednym pakiecie, który powinien być dostępny w NuGet po jego zainstalowaniu i może być używany w projekcie C#. Oferuje parser HTML i selektory CSS z dokumentu HTML i adresów URL HTML.

Implementacja HtmlAgilityPack w konsoli i formularzach Windows

Wiele typów aplikacji C#, takich jak Windows Forms (WinForms) i konsola Windows, implementuje HtmlAgilityPack. Chociaż implementacja różni się w zależności od platformy, podstawowa idea pozostaje niezmieniona.

Html Agility Pack C# (Jak działa dla programistów): Rysunek 1 – Wyszukaj HtmlAgilityPack za pomocą menedżera pakietów NuGet i zainstaluj go

Przykład HtmlAgilityPack w C

Jednym z najważniejszych narzędzi w skrzynce narzędziowej programisty C# do nawigacji, przetwarzania i pracy z dokumentami HTML jest HtmlAgilityPack (HAP). Pobieranie danych ze stron HTML jest ułatwione przez przyjazne dla użytkownika API, które działa jak zorganizowane drzewo elementów. Przyjrzyjmy się prostemu przykładowi kodu, aby pokazać, jak można go użyć.

using HtmlAgilityPack;

// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
var doc = web.Load("https://ironpdf.com/");

// Select specific html nodes and parse html string
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
    Console.WriteLine(node.InnerText);
}
Console.ReadKey();
using HtmlAgilityPack;

// Load HTML content from a file or URL
HtmlWeb web = new HtmlWeb();
var doc = web.Load("https://ironpdf.com/");

// Select specific html nodes and parse html string
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

// Iterate through selected nodes and extract content
foreach (HtmlNode node in nodes)
{
    Console.WriteLine(node.InnerText);
}
Console.ReadKey();
Imports HtmlAgilityPack

' Load HTML content from a file or URL
Private web As New HtmlWeb()
Private doc = web.Load("https://ironpdf.com/")

' Select specific html nodes and parse html string
Private nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']")

' Iterate through selected nodes and extract content
For Each node As HtmlNode In nodes
	Console.WriteLine(node.InnerText)
Next node
Console.ReadKey()
$vbLabelText   $csharpLabel

W tym przykładzie ładujemy materiał węzła HTML z adresu URL za pomocą HtmlAgilityPack. HTML jest następnie ładowany do var doc do przetwarzania i manipulacji. Aby wyodrębnić zawartość, program najpierw identyfikuje węzeł głównego dokumentu HTML, a następnie specyficznie celuje w węzły wewnątrz dokumentu za pomocą zapytań XPath. Z powyższej modyfikacji kodu celujemy konkretnie w elementy div z klasą product-homepage-header z ciągu danych HTML, a następnie tekst wewnętrzny każdego wybranego węzła jest drukowany na konsoli.

Html Agility Pack C# (Jak działa dla programistów): Rysunek 2 – Wydobyty tekst z pobierania tekstu wewnętrznego klasy product-homepage-header

Operacje HtmlAgilityPack

Transformacja HTML

Programiści mogą wykonywać kilka przekształceń i manipulacji tekstów HTML za pomocą HtmlAgilityPack. Obejmuje to operacje takie jak dodawanie, usuwanie lub zmiana węzłów tekstowych, elementów i atrybutów, a także reorganizowanie hierarchii DOM dokumentu HTML.

Rozszerzalność

Ponieważ HAP jest przeznaczony do rozszerzania, programiści mogą dodawać nowe funkcje i zachowania, aby zwiększyć jego funkcjonalność. Korzystając z dostarczanego API, programiści mogą projektować własne parsery HTML, filtry lub manipulatory, aby dostosować HAP do swoich unikalnych potrzeb i przypadków użycia.

Wydajność i efektywność

Duże teksty HTML mogą być dobrze obsługiwane przez algorytmy i struktury danych HtmlAgilityPack, które są zoptymalizowane dla szybkości i efektywności. Zapewnia szybką i responsywną analizę zawartości HTML i manipulacje, minimalizując zużycie pamięci i obciążenie przetwarzania.

Integracja HtmlAgilityPack z IronPDF

Użycie IronPDF z HtmlAgilityPack

Możliwości zarządzania dokumentami i tworzenia raportów są nieograniczone, gdy HtmlAgilityPack i IronPDF są połączone. Za pomocą HtmlAgilityPack do analizy HTML i dokumentacji IronPDF do konwersji PDF, programiści mogą zautomatyzować tworzenie dokumentów PDF z dynamicznej zawartości online bez żadnych trudności.

Zainstaluj IronPDF

  • Uruchom projekt Visual Studio.
  • Wybierz "Narzędzia" > "Menedżer pakietów NuGet" > "Konsola Menedżera pakietów".
  • Wprowadź to polecenie do konsoli Menedżera pakietów:
Install-Package IronPdf
  • Alternatywnie można użyć Menedżera Pakietów NuGet dla Rozwiązań, aby zainstalować IronPDF.
  • Można przeglądać wyniki wyszukiwania pakietu IronPDF, wybrać go, a następnie kliknąć przycisk "Zainstaluj". Visual Studio zajmie się instalacją i pobieraniem.

    Html Agility Pack C# (How It Works For Developers): Figure 3 - Install IronPDF using the Manage NuGet Package for Solution by searching IronPdf in the search bar of NuGet Package Manager, then select the project and click on the Install button.

  • NuGet zainstaluje pakiet IronPDF i wszelkie wymagane zależności dla projektu.
  • Po zainstalowaniu IronPDF można użyć go w projekcie.

Zainstaluj za pośrednictwem strony internetowej NuGet

Aby dowiedzieć się więcej o funkcjach, kompatybilności i innych możliwościach pobierania IronPDF, zobacz jego stronę pakietu NuGet na stronie NuGet.

Wykorzystaj bibliotekę DLL do instalacji

Alternatywnie można użyć pliku DLL IronPDF, aby zintegrować go bezpośrednio z projektem. Kliknij ten link pobierania IronPDF DLL, aby uzyskać plik ZIP zawierający DLL. Po rozpakowaniu włącz DLL do swojego projektu.

Wdrażanie logiki

Poprzez integrację funkcji obu bibliotek, HtmlAgilityPack (HAP) i IronPDF można zaimplementować w C#, aby odczytywać informacje HTML i tworzyć dokumenty PDF na bieżąco. Kroki implementacji są wymienione poniżej, wraz z przykładowym kodem, który przechodzi przez każdy krok:

  1. Ładuj zawartość HTML za pomocą HtmlAgilityPack: Użyj HtmlAgilityPack, aby załadować materiał HTML ze źródła, takiego jak plik, ciąg lub adres URL. W tej fazie HTML jest dokumentowany i tworzony jest obiekt dokumentu HTML, którym można manipulować.
  2. Wyodrębnij wymaganą zawartość: Użyj HtmlAgilityPack w połączeniu z zapytaniami XPath lub LINQ, aby wybrać i wyodrębnić konkretną zawartość z dokumentu HTML. Może to obejmować wybieranie elementów według ich właściwości, tagów lub struktury hierarchicznej.
  3. Konwersja HTML do PDF za pomocą IronPDF: Użyj IronPDF, aby utworzyć dokument PDF z pobranej zawartości HTML. IronPDF łatwo konwertuje materiał HTML do formatu PDF, zachowując styl i układ.
  4. Opcjonalnie: Dostosowanie wyglądu PDF: Użyj IronPDF, aby dodać nagłówki, stopki, numerowanie stron i inne dynamiczne komponenty, aby dostosować wynikowy wygląd PDF w zależności od potrzeb. Ten krok poprawia wygląd i użyteczność wynikowego dokumentu PDF.
  5. Zapisz lub wyślij dokument PDF: Utworzony dokument PDF może być przesyłany bezpośrednio do klienta lub przeglądarki do pobrania, lub może być zapisany w pliku. IronPDF oferuje sposoby zapisania plików PDF do różnych strumieni wyjściów.
using HtmlAgilityPack;
using IronPdf;
using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder htmlContent = new StringBuilder();

        // Load HTML content from a file or URL
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load("https://ironpdf.com/");

        // Select specific elements using XPath or LINQ
        HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

        // Iterate through selected nodes and extract content
        foreach (HtmlNode node in nodes)
        {
            htmlContent.Append(node.OuterHtml);
            Console.WriteLine(node.InnerText);
        }

        // Convert HTML content to PDF using IronPDF
        var Renderer = new HtmlToPdf();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());

        // Save PDF to file
        PDF.SaveAs("output.pdf");
        Console.WriteLine("PDF generated successfully!");
        Console.ReadKey();
    }
}
using HtmlAgilityPack;
using IronPdf;
using System;
using System.Text;

class Program
{
    static void Main()
    {
        StringBuilder htmlContent = new StringBuilder();

        // Load HTML content from a file or URL
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load("https://ironpdf.com/");

        // Select specific elements using XPath or LINQ
        HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']");

        // Iterate through selected nodes and extract content
        foreach (HtmlNode node in nodes)
        {
            htmlContent.Append(node.OuterHtml);
            Console.WriteLine(node.InnerText);
        }

        // Convert HTML content to PDF using IronPDF
        var Renderer = new HtmlToPdf();
        var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());

        // Save PDF to file
        PDF.SaveAs("output.pdf");
        Console.WriteLine("PDF generated successfully!");
        Console.ReadKey();
    }
}
Imports HtmlAgilityPack
Imports IronPdf
Imports System
Imports System.Text

Friend Class Program
	Shared Sub Main()
		Dim htmlContent As New StringBuilder()

		' Load HTML content from a file or URL
		Dim web As New HtmlWeb()
		Dim doc As HtmlDocument = web.Load("https://ironpdf.com/")

		' Select specific elements using XPath or LINQ
		Dim nodes As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//h1[@class='product-homepage-header product-homepage-header--ironpdf']")

		' Iterate through selected nodes and extract content
		For Each node As HtmlNode In nodes
			htmlContent.Append(node.OuterHtml)
			Console.WriteLine(node.InnerText)
		Next node

		' Convert HTML content to PDF using IronPDF
		Dim Renderer = New HtmlToPdf()
		Dim PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString())

		' Save PDF to file
		PDF.SaveAs("output.pdf")
		Console.WriteLine("PDF generated successfully!")
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel

Odwiedź stronę przykładów konwersji za pomocą IronPDF, aby dowiedzieć się więcej o przykładzie kodu.

Html Agility Pack C# (Jak działa dla programistów): Rysunek 4 – Strona startowa IronPDF

Poniżej przedstawiono wynik działania:

Przykładowe wyjście z powyższego kodu

Wnioski

Niezależnie od tego, czy analizujesz dane HTML, czy tworzysz raporty PDF, programiści mogą łatwo zarządzać i zmieniać zawartość dokumentów dzięki płynnemu zintegrowaniu HtmlAgilityPack i IronPDF w C#. Programiści mogą łatwo i dokładnie zautomatyzować operacje powiązane z dokumentami, łącząc funkcje produkcji PDF z IronPDF z możliwościami analizy HtmlAgilityPack. Połączenie tych dwóch bibliotek zapewnia silne rozwiązanie do zarządzania dokumentami w C#, niezależnie od tego, czy budujesz dynamiczne raporty, czy pobierasz dane ze stron internetowych.

Licencja wieczysta, rok utrzymania oprogramowania i aktualizacja biblioteki są uwzględnione w pakiecie $999 Lite. IronPDF oferuje bezpłatną licencję z ograniczeniami czasowymi i dotyczącymi redystrybucji. Przejdź do informacji o licencjonowaniu IronPDF, aby dowiedzieć się więcej o kosztach i licencji.

Dowiedz się więcej o bibliotekach Iron Software.

Często Zadawane Pytania

Jak mogę przekonwertować HTML na PDF w języku C#?

Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Możesz również konwertować pliki HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.

Jaki jest cel używania HtmlAgilityPack w projektach C#?

HtmlAgilityPack jest używany w projektach C# do analizowania i manipulowania dokumentami HTML. Potrafi obsługiwać źle sformatowany kod HTML, co czyni go idealnym rozwiązaniem do zadań związanych z web scrapingiem i ekstrakcją danych.

Jak skonfigurować HtmlAgilityPack w aplikacji C#?

Aby skonfigurować HtmlAgilityPack, zainstaluj go za pomocą menedżera pakietów NuGet w Visual Studio. Po instalacji możesz zaimportować niezbędne przestrzenie nazw i rozpocząć parsowanie treści HTML w swojej aplikacji.

Czy IronPDF i HtmlAgilityPack mogą być używane razem do tworzenia dokumentów?

Tak, IronPDF i HtmlAgilityPack można połączyć w celu tworzenia dynamicznych dokumentów PDF na podstawie treści HTML. HtmlAgilityPack wyodrębnia i przetwarza dane HTML, które następnie można przekonwertować do formatu PDF za pomocą IronPDF.

Jakie są główne funkcje IronPDF for .NET dla programistów .NET?

IronPDF oferuje takie funkcje, jak konwersja HTML do PDF, scalanie plików PDF oraz dodawanie tekstu lub obrazów do plików PDF. Obsługuje szeroki zakres funkcji umożliwiających solidne zarządzanie dokumentami PDF w aplikacjach .NET.

W jaki sposób HtmlAgilityPack może pomóc w pozyskiwaniu danych ze stron internetowych?

HtmlAgilityPack pozwala programistom na ładowanie dokumentów HTML oraz korzystanie z zapytań XPath lub LINQ w celu nawigacji i wyodrębniania danych na podstawie określonych węzłów lub atrybutów, ułatwiając ekstrakcję danych z sieci.

Jakie są zalety integracji biblioteki PDF z HtmlAgilityPack?

Integracja IronPDF z HtmlAgilityPack usprawnia automatyzację dokumentów, umożliwiając konwersję dynamicznej zawartości HTML na raporty PDF, co usprawnia generowanie dokumentów w aplikacjach .NET.

Czy można używać IronPDF w aplikacjach konsolowych?

Tak, IronPDF można wdrożyć w różnych typach aplikacji C#, w tym w aplikacjach konsolowych Windows, co pozwala na wszechstronne przetwarzanie dokumentów i generowanie plików PDF.

Jakie operacje HTML można wykonywać za pomocą HtmlAgilityPack?

HtmlAgilityPack obsługuje operacje takie jak dodawanie, usuwanie lub modyfikowanie węzłów i elementów HTML oraz reorganizację struktury DOM, co czyni go wszechstronnym narzędziem do manipulacji dokumentami HTML.

Czy IronPDF oferuje bezpłatną wersję próbną dla programistów?

IronPDF oferuje bezpłatną licencję z pewnymi ograniczeniami, umożliwiającą programistom ocenę biblioteki bez znaku wodnego w okresie próbnym, co daje możliwość przetestowania jej funkcji przed zakupem.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwon do mnie