Парсинг определенных характеристик товаров из неформатированного текста (макрос [EXTRACTATTR])

Например, нужно спарсить характеристики товаров из текстов типа:

1
БАНКИ ДЛЯ СЫПУЧИХ ПРОДУКТОВ, НАБОР 3ШТ. + ЛОЖКИ 'ИРИС' ДИАМЕТР -9СМ. ВЫСОТА -14СМ. ОБЪЕМ -500СМ. (32,5*11*15,5СМ. ДЛИНА ЛОЖКИ- 12,5 СМ.) (ПОДАРОЧНАЯ

Видим, что характеристики расположены в тексте хаотично и не структурированно!

Решением является макрос [EXTRACTATTR], который помимо параметров имеет еще и собственные опции:

Content Downloader

С помощью макроса [EXTRACTATTR] можно решать следующие задачи:
1) Парсинг одного значения характеристики из неструктурированного текста по ее названию (или очистка текста от этой характеристики)
2) Парсинг всех перечисленных характеристик из неструктурированного текста по списку их названий (или очистка текста от этих характеристик)

Парсинг одного значения характеристики из неструктурированного текста по ее названию (или очистка текста от этой характеристики)

В параметре [NAME] задается имя одной нужной характеристики
В параметре [END] через символ | перечисляются возможные варианты конца области текста со значением характеристики ({br} служит для обозначения переноса строки)

1
[EXTRACTATTR][NAME]Диаметр[/NAME][END].|{br}[/END]БАНКИ ДЛЯ СЫПУЧИХ ПРОДУКТОВ, НАБОР 3ШТ. + ЛОЖКИ 'ИРИС' ДИАМЕТР -9СМ. ВЫСОТА -14СМ. ОБЪЕМ -500СМ. (32,5*11*15,5СМ. ДЛИНА ЛОЖКИ- 12,5 СМ.) (ПОДАРОЧНАЯ[/EXTRACTATTR]

В результате получим значение характеристики «Диаметр»:

1
9СМ



Если нужно убрать из текста указанную характеристику, добавляем параметр [CLEAR]:

1
[EXTRACTATTR][NAME]Диаметр[/NAME][END].|{br}[/END][CLEAR]БАНКИ ДЛЯ СЫПУЧИХ ПРОДУКТОВ, НАБОР 3ШТ. + ЛОЖКИ 'ИРИС' ДИАМЕТР -9СМ. ВЫСОТА -14СМ. ОБЪЕМ -500СМ. (32,5*11*15,5СМ. ДЛИНА ЛОЖКИ- 12,5 СМ.) (ПОДАРОЧНАЯ[/EXTRACTATTR]

В результате получим текст без характеристики «Диаметр»:

1
БАНКИ ДЛЯ СЫПУЧИХ ПРОДУКТОВ, НАБОР 3ШТ. + ЛОЖКИ 'ИРИС' ВЫСОТА -14СМ. ОБЪЕМ -500СМ. (32,5*11*15,5СМ. ДЛИНА ЛОЖКИ- 12,5 СМ.) (ПОДАРОЧНАЯ


Парсинг всех перечисленных характеристик из неструктурированного текста по списку их названий (или очистка текста от этих характеристик)

Перечисляем все возможные характеристики в опциях макроса:

Content Downloader

Также убираем из макроса параметр [NAME]!

1
[EXTRACTATTR][END].|{br}[/END]БАНКИ ДЛЯ СЫПУЧИХ ПРОДУКТОВ, НАБОР 3ШТ. + ЛОЖКИ 'ИРИС' ДИАМЕТР -9СМ. ВЫСОТА -14СМ. ОБЪЕМ -500СМ. (32,5*11*15,5СМ. ДЛИНА ЛОЖКИ- 12,5 СМ.) (ПОДАРОЧНАЯ[/EXTRACTATTR]

В итоге получаем нужные характеристики в следующем виде (CSV):
таблица CSV


Если нужно удалить характеристики из текста, добавляем параметр [CLEAR]:

1
[EXTRACTATTR][END].|{br}[/END][CLEAR]БАНКИ ДЛЯ СЫПУЧИХ ПРОДУКТОВ, НАБОР 3ШТ. + ЛОЖКИ 'ИРИС' ДИАМЕТР -9СМ. ВЫСОТА -14СМ. ОБЪЕМ -500СМ. (32,5*11*15,5СМ. ДЛИНА ЛОЖКИ- 12,5 СМ.) (ПОДАРОЧНАЯ[/EXTRACTATTR]

В итоге получаем:

1
БАНКИ ДЛЯ СЫПУЧИХ ПРОДУКТОВ, НАБОР 3ШТ. + ЛОЖКИ 'ИРИС' (32,5*11*15,5СМ. ) (ПОДАРОЧНАЯ


Дополнительно

Опции макроса также можно вызывать через соответствующее меню:

Content Downloader

Также, в качестве окончания областей значений характеристик в тексте, в параметре [END] можно использовать оператор [MARK]! Это нужно, например, когда нужно спарсить в CSV характеристики из таких текстов:

1
Высота 20 длина 55 скорость 333

В окне настроек макроса перечисляем ВСЕ возможные характеристики:

Content Downloader

В параметре [END] прописываем оператор [MARK]:

1
[EXTRACTATTR][END][MARK][/END]Высота 20 длина 55 скорость 333[/EXTRACTATTR]

В результате получаем такую таблицу CSV:

Таблица CSV

Спасибо за внимание!

1 Star2 Stars3 Stars4 Stars5 Stars (Еще нет оценок)
Загрузка...
Автор: admin, 27 февраля 2017
Рубрики: Парсинг
Метки: , ,

Последние статьи

css.php