PowerShell:
HTML parsen

Wie geht das:

PowerShell verfügt nativ nicht über einen dedizierten HTML-Parser, aber Sie können das Cmdlet Invoke-WebRequest verwenden, um auf HTML-Inhalte zuzugreifen und diese zu parsen. Für komplexeres Parsen und Manipulieren kann der HtmlAgilityPack, eine beliebte .NET-Bibliothek, verwendet werden.

Verwendung von Invoke-WebRequest:

# Einfaches Beispiel, um Titel von einer Webseite zu holen
$response = Invoke-WebRequest -Uri 'http://example.com'
# Die ParsedHtml-Eigenschaft nutzen, um auf DOM-Elemente zuzugreifen
$title = $response.ParsedHtml.title
Write-Output $title

Beispielausgabe:

Example Domain

Verwendung von HtmlAgilityPack:

Zuerst müssen Sie den HtmlAgilityPack installieren. Das können Sie über den NuGet Package Manager tun:

Install-Package HtmlAgilityPack -ProviderName NuGet

Dann können Sie ihn in PowerShell verwenden, um HTML zu parsen:

# Das HtmlAgilityPack-Assembly laden
Add-Type -Path "Pfad\zum\HtmlAgilityPack.dll"

# Ein HtmlDocument-Objekt erstellen
$doc = New-Object HtmlAgilityPack.HtmlDocument

# HTML aus einer Datei oder einer Webanfrage laden
$htmlContent = (Invoke-WebRequest -Uri "http://example.com").Content
$doc.LoadHtml($htmlContent)

# XPath oder andere Abfragemethoden nutzen, um Elemente zu extrahieren
$node = $doc.DocumentNode.SelectSingleNode("//h1")

if ($node -ne $null) {
    Write-Output $node.InnerText
}

Beispielausgabe:

Willkommen bei Example.com!

In diesen Beispielen ist Invoke-WebRequest am besten für einfache Aufgaben geeignet, während HtmlAgilityPack ein wesentlich umfangreicheres Set von Funktionen für komplexes HTML-Parsen und -Manipulation bietet.