Lua:
Analysering av HTML

Hvordan:

Lua har ikke et innebygd bibliotek for parsing av HTML, men du kan utnytte tredjepartsbiblioteker som LuaHTML eller bruke bindinger for libxml2 gjennom LuaXML. En populær tilnærming er å bruke biblioteket lua-gumbo for parsing av HTML, som gir en enkel, HTML5-kompatibel parsingsevne.

Installere lua-gumbo:

Først, sørg for at lua-gumbo er installert. Du kan vanligvis installere det ved hjelp av luarocks:

luarocks install lua-gumbo

Grunnleggende parsing med lua-gumbo:

Her er hvordan du kan parse et enkelt HTML-snutt og trekke ut data fra det ved bruk av lua-gumbo:

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

local p = document:getElementsByTagName("p")[1]
print(p.textContent)  -- Utdata: Hei, verden!

Avansert eksempel - Utvinning av lenker:

For å trekke ut href-attributter fra alle ankertagger (<a>-elementer) i et HTML-dokument:

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

for _, element in ipairs(document.links) do
    if element.getAttribute then  -- Sørg for at det er et Element og har attributter
        local href = element:getAttribute("href")
        if href then print(href) end
    end
end

-- Eksempel på utdata:
-- http://example.com/1
-- http://example.com/2
-- http://example.com/3

Dette kodeutdraget itererer gjennom alle lenkene i dokumentet og skriver ut deres href-attributter. lua-gumbo-bibliotekets evne til å parse og forstå strukturen av et HTML-dokument forenkler prosessen med å trekke ut spesifikke elementer basert på deres tagger eller attributter.