Lua:
Analisi del HTML

Come fare:

Lua non ha una libreria incorporata per l’analisi dell’HTML, ma è possibile utilizzare librerie di terze parti come LuaHTML o sfruttare i binding per libxml2 tramite LuaXML. Un approccio popolare è utilizzare la libreria lua-gumbo per l’analisi dell’HTML, che fornisce una capacità di parsing conforme ad HTML5 e diretta.

Installazione di lua-gumbo:

Prima di tutto, assicurati che lua-gumbo sia installato. Tipicamente puoi installarlo usando luarocks:

luarocks install lua-gumbo

Parsing di base con lua-gumbo:

Ecco come puoi analizzare un frammento HTML semplice ed estrarre dati da esso usando lua-gumbo:

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

local p = document:getElementsByTagName("p")[1]
print(p.textContent)  -- Output: Ciao, mondo!

Esempio Avanzato - Estrazione di Link:

Per estrarre gli attributi href da tutti i tag di ancoraggio (<a> elements) in un documento HTML:

local gumbo = require "gumbo"
local document = gumbo.parse([[
<html>
<head><title>Pagina Campione</title></head>
<body>
  <a href="http://example.com/1">Link 1</a>
  <a href="http://example.com/2">Link 2</a>
  <a href="http://example.com/3">Link 3</a>
</body>
</html>
]])

for _, element in ipairs(document.links) do
    if element.getAttribute then  -- Assicurati che sia un Elemento e che abbia attributi
        local href = element:getAttribute("href")
        if href then print(href) end
    end
end

-- Esempio di Output:
-- http://example.com/1
-- http://example.com/2
-- http://example.com/3

Questo frammento di codice itera attraverso tutti i link nel documento e stampa i loro attributi href. La capacità della libreria lua-gumbo di analizzare e comprendere la struttura di un documento HTML semplifica il processo di estrazione di elementi specifici in base ai loro tag o attributi.