html_parser

Парсинг HTML


new(content)

Выполняет базовый парсинг и создает документ, с которым можно работать.

Параметры

#ТипОписание
1строкаHTML контент

Возвращаемые значения

#ТипОписание
1html_doc_udдокумент
2строкаошибка или nil

Работа с документом (html_doc_ud)

find(selector)

Производит поиск элементов, удовлетворящих условиям CSS-селектора.

Параметры

#ТипОписание
1строкаCSS селектор для выборки элементов

Возвращаемые значения

#ТипОписание
1таблица документов
2ошибка или nil

Пример

local hp = require "html_parser"
local el, err = hp.new('"test"><span class="a b c">something</span></div>')
print(el, err)
-- вывод: userdata: 0xc0006cad80    nil

attr(attribute)

Получает значение указанного атрибута элемента.

Параметры

#ТипОписание
1строкаИмя атрибута (например, "class", "id", "href")

Возвращаемые значения

#ТипОписание
1строкаЗначение атрибута или nil, если атрибут не найден

Пример

local hp = require "html_parser"
local doc, err = hp.new('<div class="container" id="main">content</div>')
local elements = doc:find("div")
local className = elements[1]:attr("class")  -- "container"
local elementId = elements[1]:attr("id")     -- "main"

text

Получает текстовое содержимое элемента без HTML-тегов.

Параметры

#ТипОписание
--Параметры не требуются

Возвращаемые значения

#ТипОписание
1строкаТекстовое содержимое элемента

Пример

local hp = require "html_parser"
local doc, err = hp.new('<div class="content"><p>Hello <strong>World</strong>!</p></div>')
local elements = doc:find("p")
local textContent = elements[1]:text()
print(textContent)

-- вывод: Hello World!

innerHTML

Получает HTML-содержимое внутри элемента, включая все дочерние элементы и теги.

Возвращаемые значения

#ТипОписание
1строкаHTML-содержимое внутри элемента

Пример

local hp = require "html_parser"
local doc, err = hp.new('<div class="container"><p>Hello <strong>World</strong>!</p></div>')
local elements = doc:find("div")
local innerHTML = elements[1]:innerHTML()  
print(innerHTML)
-- вывод: <p>Hello <strong>World</strong>!</p>

outerHTML

Получает полный HTML-код элемента, включая сам элемент и все его содержимое.

Возвращаемые значения

#ТипОписание
1строкаПолный HTML-код элемента

Пример

local hp = require "html_parser"
local doc, err = hp.new('<div class="container"><p>Hello <strong>World</strong>!</p></div>')
local elements = doc:find("div")
local outerHTML = elements[1]:outerHTML()  
print(outerHTML)

-- вывод: <div class="container"><p>Hello <strong>World</strong>!</p></div>