PowerShell:
Analiza składniowa HTML

Jak to zrobić:

PowerShell nie posiada natywnie dedykowanego analizatora HTML, ale można wykorzystać cmdlet Invoke-WebRequest do dostępu i analizowania treści HTML. Dla bardziej złożonego parsowania i manipulacji, można zastosować HtmlAgilityPack, popularną bibliotekę .NET.

Korzystanie z Invoke-WebRequest:

# Prosty przykład pobierania tytułów ze strony internetowej
$response = Invoke-WebRequest -Uri 'http://example.com'
# Wykorzystanie właściwości ParsedHtml do dostępu do elementów DOM
$title = $response.ParsedHtml.title
Write-Output $title

Przykładowe wyjście:

Przykładowa domena

Korzystanie z HtmlAgilityPack:

Najpierw musisz zainstalować HtmlAgilityPack. Można to zrobić przez Menedżera Pakietów NuGet:

Install-Package HtmlAgilityPack -ProviderName NuGet

Następnie możesz użyć go w PowerShell do analizowania HTML:

# Załaduj zestaw HtmlAgilityPack
Add-Type -Path "ścieżka\do\HtmlAgilityPack.dll"

# Stwórz obiekt HtmlDocument
$doc = New-Object HtmlAgilityPack.HtmlDocument

# Wczytaj HTML z pliku lub zapytania sieciowego
$htmlContent = (Invoke-WebRequest -Uri "http://example.com").Content
$doc.LoadHtml($htmlContent)

# Użyj XPath lub innych metod zapytań do wyodrębnienia elementów
$node = $doc.DocumentNode.SelectSingleNode("//h1")

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

Przykładowe wyjście:

Witaj na Example.com!

W tych przykładach, Invoke-WebRequest najlepiej nadaje się do prostych zadań, podczas gdy HtmlAgilityPack oferuje znacznie bogatszy zestaw funkcji do złożonego analizowania i manipulowania kodem HTML.