Полное описание товара в большинстве случаев нужно парсить с html.
Есть ситуации когда html код настолько плохой, что лучше забрать чистый текст и размечать абзацы энтерами уже вручную. Например, бывает такое что каждая буква обрамлена тегом.
В случае когда html код описания плюс\минус нормальный, то мы чаще всего применяем такие основные правила при парсинге:
1) ; на ,
2) перенос строки и таб на пробел (бывает по 30 переносов строки подряд).
3) " на '
4) на пробел
Это основные замены, которые связаны с удобством обработки, загрузки и дальнейшей поддержки данных. Точки с запятой и таб это популярные разделители для excel и csv. Кавычками часто обрамляются значения.
У замены кавычек также есть минус, что в тексте пропадут двойные кавычки, возможно, что-то придется редактировать вручную, если это критичная замена.
Аналогичный минус у замены точки с запятой на запятую. Но безопасность и перспективность работы с данными на первоначальном и массовом этапе для нас важнее.
Любые замены являются спорными и могут применяться и не применяться выборочно для разных задач.
Обязательно парсить в utf-8, а иначе могут потеряны ряд символов, в т.м.ч эмодзи 😱.
Постобработка описания после парсинга
Наиболее частые задачи:
- Наличие ссылок внутри текста
- Наличие картинок
- Множественные переносы <br> или пустые <p></p>
- вшитые стили у тегов
Ссылки внутри текста
либо выдергиваем список и делаем редиректы
либо на основании списка замены
Картинки
картинки выкачиваем, кладем в одну папку, все пути заменяем на общую папку
Множественные переносы
Сокращаются при необходимости
Стили у тегов
по желанию клиента вырезаются полностью либо частично. Иногда в описании есть очень необычные дизайнерские блоки с картинками, в таком случае при полном удалении стилей верстать придется заново.