Analyse Syntaxique du HTML

Lua:
Analyse Syntaxique du HTML

Comment faire :

Lua n’a pas de bibliothèque intégrée pour l’analyse du HTML, mais vous pouvez utiliser des bibliothèques tierces comme LuaHTML ou exploiter les bindings pour libxml2 à travers LuaXML. Une approche populaire consiste à utiliser la bibliothèque lua-gumbo pour l’analyse du HTML, qui fournit une capacité d’analyse conforme à HTML5, simple et directe.

Installer lua-gumbo :

D’abord, assurez-vous que lua-gumbo est installé. Vous pouvez généralement l’installer en utilisant luarocks :

luarocks install lua-gumbo

Analyse de base avec lua-gumbo :

Voici comment vous pouvez analyser un simple extrait HTML et extraire des données à partir de celui-ci en utilisant lua-gumbo :

local gumbo = require "gumbo"
local document = gumbo.parse[[<html><body><p>Bonjour, monde !</p></body></html>]]

local p = document:getElementsByTagName("p")[1]
print(p.textContent)  -- Résultat : Bonjour, monde !

Exemple avancé - Extraction de liens :

Pour extraire les attributs href de toutes les balises d’ancrage (<a> elements) dans un document HTML :

local gumbo = require "gumbo"
local document = gumbo.parse([[
<html>
<head><title>Page Exemple</title></head>
<body>
  <a href="http://exemple.com/1">Lien 1</a>
  <a href="http://exemple.com/2">Lien 2</a>
  <a href="http://exemple.com/3">Lien 3</a>
</body>
</html>
]])

for _, element in ipairs(document.links) do
    if element.getAttribute then  -- Assurez-vous qu'il s'agit d'un Élément et qu'il a des attributs
        local href = element:getAttribute("href")
        if href then print(href) end
    end
end

-- Résultat Exemple :
-- http://exemple.com/1
-- http://exemple.com/2
-- http://exemple.com/3

Ce fragment de code itère à travers tous les liens dans le document et imprime leurs attributs href. La capacité de la bibliothèque lua-gumbo à analyser et comprendre la structure d’un document HTML simplifie le processus d’extraction d’éléments spécifiques basés sur leurs balises ou attributs.