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.