Макрос шаблона вывода [EXTRACTTABLE] – извлечение HTML таблиц из кода WEB страницы

Парсинг характеристик товаров из HTML Таблиц


Макрос [EXTRACTTABLE] предназначен для извлечения кода всех HTML таблиц (table). Благодаря этому в некоторых сложных случаях (об этом ниже) можно будет успешно извлекать характеристики из таблиц с помощью макросов шаблона вывода: [HORIZTABLE] и [VERTTABLE].

1
2
[EXTRACTTABLE][DOCSOURCE][/EXTRACTTABLE] - извлечение HTML таблиц из кода WEB страницы
[EXTRACTTABLE]<CD_GRAN_3!>[/EXTRACTTABLE] - извлечение HTML таблиц из кода границы парсинга 3

Важно: При извлечении таблиц удаляются лишние thead или лишние строки из thead.

Например, есть такая таблица

Парсинг HTML таблиц с несколькими строками заголовка

Она содержит несколько лишних строк с заголовками, которые не нужны. Задача макроса – удалить лишние строки заголовка и вывести все найденные таблицы.

1
[EXTRACTTABLE]{ETTEMPLATE}[HORIZTABLE][PREFIX]<CD_DOCURL!>[/PREFIX][MIN]2[/MIN]{ETVALUE}[/HORIZTABLE]{/ETTEMPLATE}[DOCSOURCE][/EXTRACTTABLE]

Данная конструкция макросов шаблона вывода спарсит подобные таблицы примерно вот в такой результат

Парсинг характеристик из HTML таблиц

Обратите внимание на параметр {ETTEMPLATE}…{ETVALUE}…{/ETTEMPLATE} (в коде выше) с помощью него можно добавить текст или макросы к каждой извлекаемой HTML Таблице. В данном случае с помощью этого параметра к каждой извлеченной таблице добавляется макрос парсинга характеристик [HORIZTABLE]. А {ETVALUE} (внутри параметра {ETTEMPLATE}) выводит каждую извлекаемую таблицу.


При использовании [HORIZTABLE] (названия столбцов таблицы выводятся горизонтально, в строке) в случае вывода нескольких таблиц, каждая, по умолчанию, разделяется оператором переноса строк [CSVLB]. В результате получим несколько [HORIZTABLE] и правильный вывод в результат CSV – несколько таблиц одна под другой.


Если же для извлечения характеристик из HTML таблиц используется макрос [VERTTABLE], то в макрос [EXTRACTTABLE] нужно добавить параметр {SINGLETEMPLATE}

1
[EXTRACTTABLE]{SINGLETEMPLATE}{ETTEMPLATE}[VERTTABLE][PREFIX][/PREFIX][MIN]2[/MIN]{ETVALUE}[/VERTTABLE]{/ETTEMPLATE}[DOCSOURCE][/EXTRACTTABLE]

В этом случае, при наличии в коде нескольких таблиц в макрос [VERTTABLE] будет взята не каждая из них, а все сразу. В результате получится правильный вид таблицы CSV (они выведутся в результат CSV в одной строке одна за другой)

Парсинг характеристик товаров из HTML таблиц


Для установки альтернативного разделителя используйте параметр {ETSEP} (без параметра {SINGLETEMPLATE}, так как нужен вывод нескольких таблиц с разделителем)

1
[EXTRACTTABLE]{ETTEMPLATE}{ETVALUE}{/ETTEMPLATE}РАЗДЕЛИТЕЛЬ{/ETSEP}[DOCSOURCE][/EXTRACTTABLE]



1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 2, средний балл: 5.00)

Loading...
Автор: admin, 17 November 2021
Рубрики: Парсинг

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

css.php