парсинг HTML

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
beria
постоялец
Сообщения: 130
Зарегистрирован: 29.09.2016 07:57:13

парсинг HTML

Сообщение beria »

Вопрос к гуру, чем лучше всего распарcить страницу HTML (у меня строка типа Ansistring), достаточно сложной структуры, большого размера и с возможными (но не обязательными) ошибками в дерево DOM с целью построения запросов по нему. Критерии: существование простого конструктора запросов (лучше визуального и внешнего) и минимум используемой оперативной памяти (скорость работы парсера не так важна) :oops:
CynicRus
постоялец
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

Сообщение CynicRus »

Ну...Если надо в дерево загнать HTML, то скорее всего надо писать свой парсер. Лично я ещё не встретил ничего толкового, загоняющее в дерево HTML, чтобы работало на сложных структурах и не тянуло за собой какой нибудь WebKit или ещё что нибудь такое. Как вариант заюзать движок хромиума, ну или - придумывать решение самому. Потому, как HTML парсеры для Lazarus\Delphi во первых редкость, во вторых - в полуживом состоянии.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Зачем свое-то?
HTML это почти XML, так что можно парсить XML-парсером. Язык запросов прилагается - XPath. Думаю и конструкторы и онлайн хелперы для него есть.
Насчет ошибок, правда, не уверен. Надо искать такой, что терпимо относится к ошибкам.
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

Mirage писал(а):HTML это почти XML, так что можно парсить XML-парсером.
Это вы так думаете потому, что никогда не пробовали.
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Не пробовал, т.к. заведомо плохой подход. Хотя думаю это лучше, чем свой парсер писать.
Я пробовал решать эту задачу с помощью таких библиотек как JSoup на Java и pyQuery на Python. Было удобно, потому как поддерживаются не только xQuery-образные запросы, но jQuery-образные. Не знаю, есть ли что-то подобное для FPC.
Ответить