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.