html_parser
Парсинг HTML
new(content)
Выполняет базовый парсинг и создает документ, с которым можно работать.
Параметры
| # | Тип | Описание |
|---|---|---|
| 1 | строка | HTML контент |
Возвращаемые значения
| # | Тип | Описание |
|---|---|---|
| 1 | html_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>