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.