Lua:
Tolka HTML

Hur man gör:

Lua har inte ett inbyggt bibliotek för att tolka HTML, men du kan använda dig av tredjepartsbibliotek som LuaHTML eller utnyttja bindningar för libxml2 genom LuaXML. En populär metod är att använda biblioteket lua-gumbo för att tolka HTML, vilket ger en enkel, HTML5-kompatibel tolkningsförmåga.

Installera lua-gumbo:

Först, se till att lua-gumbo är installerat. Du kan vanligtvis installera det med luarocks:

luarocks install lua-gumbo

Grundläggande tolkning med lua-gumbo:

Så här kan du tolka en enkel HTML-snutt och extrahera data från den med lua-gumbo:

local gumbo = require "gumbo"
local dokument = gumbo.parse[[<html><body><p>Hej, världen!</p></body></html>]]

local p = dokument:getElementsByTagName("p")[1]
print(p.textContent)  -- Utmatning: Hej, världen!

Avancerat exempel - Extrahera länkar:

För att extrahera href-attribut från alla ankartaggar (<a>-element) i ett HTML-dokument:

local gumbo = require "gumbo"
local dokument = gumbo.parse([[
<html>
<head><title>Exempelsida</title></head>
<body>
  <a href="http://example.com/1">Länk 1</a>
  <a href="http://example.com/2">Länk 2</a>
  <a href="http://example.com/3">Länk 3</a>
</body>
</html>
]])

for _, element in ipairs(dokument.links) do
    if element.getAttribute then  -- Försäkra att det är ett Element och har attribut
        local href = element:getAttribute("href")
        if href then print(href) end
    end
end

-- Exempel på utmatning:
-- http://example.com/1
-- http://example.com/2
-- http://example.com/3

Denna kodsnutt itererar igenom alla länkar i dokumentet och skriver ut deras href-attribut. lua-gumbo-bibliotekets förmåga att tolka och förstå strukturen på ett HTML-dokument förenklar processen att extrahera specifika element baserat på deras taggar eller attribut.