PowerShell:
Analyse Syntaxique du HTML

Comment faire :

PowerShell n’a pas nativement un parseur HTML dédié, mais vous pouvez utiliser le cmdlet Invoke-WebRequest pour accéder et analyser le contenu HTML. Pour un analyse plus complexe et manipulation, HtmlAgilityPack, une bibliothèque .NET populaire, peut être utilisée.

Utilisation de Invoke-WebRequest :

# Exemple simple pour récupérer les titres d'une page web
$response = Invoke-WebRequest -Uri 'http://example.com'
# Utiliser la propriété ParsedHtml pour accéder aux éléments DOM
$title = $response.ParsedHtml.title
Write-Output $title

Exemple de sortie :

Domaine Exemple

Utilisation d’HtmlAgilityPack :

Tout d’abord, vous devez installer HtmlAgilityPack. Vous pouvez le faire via le Gestionnaire de Packages NuGet :

Install-Package HtmlAgilityPack -ProviderName NuGet

Ensuite, vous pouvez l’utiliser dans PowerShell pour analyser le HTML :

# Charger l'assemblage HtmlAgilityPack
Add-Type -Path "chemin\vers\HtmlAgilityPack.dll"

# Créer un objet HtmlDocument
$doc = New-Object HtmlAgilityPack.HtmlDocument

# Charger le HTML à partir d'un fichier ou d'une requête web
$htmlContent = (Invoke-WebRequest -Uri "http://example.com").Content
$doc.LoadHtml($htmlContent)

# Utiliser XPath ou d'autres méthodes de requête pour extraire des éléments
$node = $doc.DocumentNode.SelectSingleNode("//h1")

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

Exemple de sortie :

Bienvenue sur Example.com !

Dans ces exemples, Invoke-WebRequest est mieux adapté pour des tâches simples, tandis qu’HtmlAgilityPack offre un ensemble de fonctionnalités beaucoup plus riche pour une analyse et manipulation HTML complexe.