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

Яка знайома проблема, аж скупа чоловіча сльоза на ясні очі навернулась.
Значить, рішень у вас рівно два:
- визначаєте тег, вміст якого вважаєте "шлаком", і ніяк не парсите, просто шукаєте закриваючий тег вліво.
- парсите ВСЕ до перемоги.
В обох випадках маєте "прелесті" із спотиканнями парсера ранійше ніж потрібно (перший випадок) і шлак на вихлопі, або пізнійше ніж потрібно (другий випадок, за умови порушення консистентності тегів) із забитим стеком, витоками пам'яті, незакритими розгалуженнями при додавання чайлдів і т.д. і т.п.
Як вихід бачу попередню валідацію консистенстності за стратегією "парсим ВСЕ" (включаючи script та ін, вважаючи їх так само деревовидними), і у випадку спотикання ігнорим ВСЕ, тикаючи вказівник де відбулась неконсистентність.
Якщо незрозуміло висловився - питайте в ПП.
-
Current freelance projects in the category Desktop Apps
Account reconciliation tool with the bank, cards, and accountantTechnical Assignment: Tool for Reconciling Accounts with Bank, Cards, and AccountantGeneral Goal A local tool (script/small application in Python) is needed, which is manually run once every 1-2 months on my computer and performs reconciliation between: Invoices I issued to… Python, Desktop Apps ∙ 21 hours 35 minutes back ∙ 34 proposals |
Add pauses of 10-30 seconds between sending emails.Hello! I am looking for an experienced 1C / BAS (BAF) programmer to promptly resolve a technical issue with email distribution.Problem essence: We use the accounting program BAF (Business Automation Framework), version 2.0. Once a month, there is a need to send about 300 emails… Web Programming, Desktop Apps ∙ 6 days 13 hours back ∙ 10 proposals |
Reverse engineering of console utilities for querying SSD controllers (Flash ID)1. Purpose of the work Extraction of the application programming interface (API) for interaction with SSD/NVMe controllers from the provided set of console utilities (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron, etc.). The result should be working code in C/C++… C & C++, Desktop Apps ∙ 7 days back ∙ 6 proposals |