Парсинг HTML-таблиц в CSV

ЗАПИСЬ ЗНАЧЕНИЙ [DYNAMICVALUES] В ШАПКУ CVS ПРОИСХОДИТ ПРИ ЗАВЕРШЕНИИ ПАРСИНГА. ПРИ ПАРСИНГЕ НЕ ОТКРЫВАЙТЕ ФАЙЛ (КУДА СОХРАНЯЮТСЯ ДАННЫЕ) В СТОРОННЕМ РЕДАКТОРЕ (ЭТО БЛОКИРУЕТ ЗАПИСЬ В НЕГО). ДОЖДИТЕСЬ ЗАВЕРШЕНИЯ ПРОЦЕДУРЫ ПАРСИНГА И ТОЛЬКО ПОТОМ ПРОВЕРЯЙТЕ РЕЗУЛЬТАТ!!!!!!!

Что получаем в итоге (пример CSV-таблицы):

Макросы [HORIZTABLE] и [VERTTABLE] преобразуют код HTML-таблиц сайта в формат данных для макроса [DYNAMICVALUES] (и сами запускают макрос [DYNAMICVALUES]). Поэтому, для вывода названий столбцов в результирующий CSV (при использовании [HORIZTABLE] и [VERTTABLE]) в строку заголовка (верхняя строка в редакторе шаблона вывода) нужно прописать [DYNAMICVALUES]. Также обратите внимание на окно c дополнительными настройками макроса (shift+ctrl+d).

Макросом шаблона вывода [HORIZTABLE]HTML-код таблицы[/HORIZTABLE] парсятся такие таблицы (“горизонтальные таблицы”, наименования столбцов расположены (горизонтально) в верхней строке):

Наименование Картинка Вес
Товар 1 1.jpg 87 кг
Товар 2 2.jpg 88 кг

Макросом шаблона вывода [VERTTABLE]HTML-код таблицы[/VERTTABLE] парсятся таблицы такого вида (“вертикальные таблицы”, наименования рядов расположены (вертикально) в левом столбце):

Наименование Товар 1 Товар 2
Картинка 1.jpg 2.jpg
Вес 87 кг 88 кг



Макросы [HORIZTABLE] и [VERTTABLE] имеют дополнительные параметры (которые можно не использовать)

– [MIN]целое число от 1 до 100[/MIN] (минимальное количество ячеек в ряду или в столбце исходной HTML-таблицы необходимое для создания ряда ячеек в результирующем CVS-файле)(смотрите видео)
– [MAX]целое число от -1 до …[/MAX] (максимальное количество ячеек в ряду или в столбце исходной HTML-таблицы необходимое для создания ряда ячеек в результирующем CVS-файле)
– [MAXROWSOUT]целое число от -1 до …[/MAXROWSOUT] (максимальное число выводимых рядов ячеек CSV, взятых из HTML Таблицы с помощью макросов [HORIZTABLE] или [VERTTABLE])
– [PREFIX]что добавить в начало каждого ряда ячеек в результирующий CSV-файл[/PREFIX] (смотрите видео)

В [PREFIX] может быть использован параметр [SINGLEUSE], когда в результат нужно вставить значение префикса всего один раз:

1
[PREFIX]что добавить в начало каждого ряда ячеек в результирующий CSV-файл[SINGLEUSE][/PREFIX]

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

1
[PREFIX]<CD_GRAN_10!>[RETAINEMPTYPREF][/PREFIX]

Где <CD_GRAN_10!> может иметь пустое или не пустое значение, но ячейка-префикс будет создана в любом случае!


Если HTML таблица имеет объединенные ячейки (с помощью атрибутов colspan или rowspan), то ее можно предварительно преобразовать в нормальный вид с помощью макроса шаблона вывода [APPLYTABLESPANS].

Для предварительного преобразования многострочных таблиц в двухстрочные воспользуйтесь макросом [MERGETABLEROWS].

Если пары: имя характеристики: значение характеристики (например, наименование: товар 1) представлены не в виде таблицы, а, скажем, в виде списка, то парсить их можно таким способом

Также учтите, что при запуске парсинга, в строку заголовка (шапку CSV) оператор [DYNAMICVALUES] записывается в первичном виде. Подстановка значений [DYNAMICVALUES] в файл осуществляется только при завершении процедуры парсинга контента!


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

Loading...
Автор: admin, 10 August 2014
Рубрики: Парсинг
Tags: , , , ,
Есть 10 коммент. к сообщению: “Парсинг HTML-таблиц в CSV”
  1. Пётр says:

    Здравствуйте! Спасибо за такую шикарную доработку!

    • admin says:

      Здравствуйте!

      Большое спасибо на добром слове!

      С уважением к вам, Сергей.

  2. Дмитрий says:

    Спасибо за урок.
    У Вас очень приятный голос и Вы очень классно объясняете.

  3. Dauren says:

    Здравствуйте, программа просто супер! СПАСИБО!
    можете мне помочь? голову уже сломал себе(
    Вот пример:
    Цвет Черный, Красный
    Размер XL, L, M, S

    как можно сделать столбец Цвет и столбец Размер. и каждая модификация товара была в отдельной ячейке.
    ? размер
    ________
    М______
    L_______ ну типа так) пожалуйста помогите!

    • admin says:

      Здравствуйте.

      Спасибо на добром слове!

      Пожалуйста, с подобными вопросами обращайтесь на форум http://forum.sbfactory.ru/ (ответ на вопрос системы NoSpam – АОЕи)(укажите, с какого адреса парсите и подробно опишите, что требуется получить на выходе (желательно пример CSV)).

      С уважением к вам, Сергей.

  4. [HORIZTABLE] и [VERTTABLE] – это крутизна , почему я раньше до них не добрался . У меня сейчас проэкт над которым я уже неделю мучаюсь , посмотрев это видео я понял , что теперь сделать его – раз плюнуть !!! Спасибо Сергею за этот парсер в целом (парсер решает кучу проблем , ускоряет наполнение сайта контентом). И за поддержку тоже спасибо , всегда быстро и качественно.

  5. Алексей says:

    Сергей, на лицензии STANDART нельзя таблицы этими макросами спарсить? Подскажите, может есть что-то подобное и для стандарта?

Написать комментарий

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

css.php