Lua:
Аналіз HTML
Як це зробити:
Lua не має вбудованої бібліотеки для розбору HTML, але ви можете використовувати сторонні бібліотеки, такі як LuaHTML
, або використовувати зв’язки з libxml2
через LuaXML
. Популярним підходом є використання бібліотеки lua-gumbo
для розбору HTML, яка надає просту можливість розбору, що відповідає стандарту HTML5.
Встановлення lua-gumbo:
Спершу переконайтеся, що lua-gumbo
встановлено. Зазвичай, його можна встановити за допомогою luarocks:
luarocks install lua-gumbo
Базовий розбір за допомогою lua-gumbo:
Ось як ви можете розібрати простий фрагмент HTML та витягти з нього дані, використовуючи lua-gumbo
:
local gumbo = require "gumbo"
local document = gumbo.parse[[<html><body><p>Привіт, світ!</p></body></html>]]
local p = document:getElementsByTagName("p")[1]
print(p.textContent) -- Вивід: Привіт, світ!
Розширений приклад - Витягування посилань:
Щоб витягти атрибути href
з усіх якорних тегів (<a>
елементів) у HTML-документі:
local gumbo = require "gumbo"
local document = gumbo.parse([[
<html>
<head><title>Зразкова сторінка</title></head>
<body>
<a href="http://example.com/1">Посилання 1</a>
<a href="http://example.com/2">Посилання 2</a>
<a href="http://example.com/3">Посилання 3</a>
</body>
</html>
]])
for _, element in ipairs(document.links) do
if element.getAttribute then -- Переконайтеся, що це Елемент і що в нього є атрибути
local href = element:getAttribute("href")
if href then print(href) end
end
end
-- Зразок виводу:
-- http://example.com/1
-- http://example.com/2
-- http://example.com/3
Цей фрагмент коду проходиться по всіх посиланнях у документі та виводить їх атрибути href
. Здатність бібліотеки lua-gumbo
розбирати та розуміти структуру HTML-документа спрощує процес витягування конкретних елементів на основі їх тегів або атрибутів.