[Delphi] Доработка библиотеки HTMLp (библиотека для парсинга)
Необходима доработка библиотеки HTMLp (форк) для парсинга HTML.
Задача:
Добавить обработку тегов script, code, template и других подобных.
Необходимость выполнения:
В текущий момент если парсить страницу в которой присутствует например тег script в котором имеется html содержимое с другими тегами (в переменной или еще где + часто не закрытыми или экранированными) - возникают утечки.
Что при массовой работе приводит к крашам и другим ошибкам.
Суть задачи:
Для указанных тегов исключить парсинг содержимого (других тегов в них).
Но сам тег и его содержимое должно оставаться для дальнейшего получения (то-есть сохранить как один тег со всем содержимым).
Кот в итоге уйдёт в репозиторий.
Для исполнителей:
Пишите о том ознакомились ли, стоимость и мысли по решению данной проблемы.
Авто-ответы игнорируются, за подробностями если нет конкретных мыслей - не пишу.
Заранее спасибо.
-

Яка знайома проблема, аж скупа чоловіча сльоза на ясні очі навернулась.
Значить, рішень у вас рівно два:
- визначаєте тег, вміст якого вважаєте "шлаком", і ніяк не парсите, просто шукаєте закриваючий тег вліво.
- парсите ВСЕ до перемоги.
В обох випадках маєте "прелесті" із спотиканнями парсера ранійше ніж потрібно (перший випадок) і шлак на вихлопі, або пізнійше ніж потрібно (другий випадок, за умови порушення консистентності тегів) із забитим стеком, витоками пам'яті, незакритими розгалуженнями при додавання чайлдів і т.д. і т.п.
Як вихід бачу попередню валідацію консистенстності за стратегією "парсим ВСЕ" (включаючи script та ін, вважаючи їх так само деревовидними), і у випадку спотикання ігнорим ВСЕ, тикаючи вказівник де відбулась неконсистентність.
Якщо незрозуміло висловився - питайте в ПП.
-
Актуальные фриланс-проекты в категории Десктопные приложения
Добавить паузы 10-30 секунд между отправками писемЗдравствуйте! Ищу опытного программиста 1С / BAS (BAF) для оперативного решения технической проблемы с почтовой рассылкой.Суть проблемы: Используем бухгалтерскую программу BAF (Business Automation Framework), редакция 2.0. Раз в месяц возникает необходимость массово отправлять… Веб-программирование, Десктопные приложения ∙ 3 дня 20 часов назад ∙ 10 ставок |
Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная… C и C++, Десктопные приложения ∙ 4 дня 7 часов назад ∙ 5 ставок |
Модификация в работе эмулятора
2000 UAH
Здравствуйте. Я скачал с Интернета эмулятор игрового автомата gaminator cf final. Он мне очень понравился, но там есть недочёты. Есть админ панель, но она открывается свободно, но не закрывается вообще. Закрывается только вместе с приложением. А данные, после изменения в админ… Десктопные приложения ∙ 11 дней 21 час назад ∙ 10 ставок |