Как спарсить таблицу

Тема в разделе "Парсинг конкретных сайтов по запросу (ПЛАТНО)", создана пользователем endruscott, 16 авг 2015.

  1. endruscott

    endruscott New Member Пользователи

    Регистрация:
    16 авг 2015
    Сообщения:
    2
    Добрый день!
    Подскажите, как спарсить такую таблицу:
    HTML:
    <table class='clothes_st'><tbody><tr><th scope='col'>&nbsp;</th><th scope='col'>28</th><th scope='col'>29</th><th scope='col'>30</th><th scope='col'>31</th><th scope='col'>32</th><th scope='col'>33</th><th scope='col'>34</th><th scope='col'>36</th><th scope='col'>38</th><th scope='col'>40</th></tr><tr><th scope='row'>32</th><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_off'>&nbsp;</td></tr><tr><th scope='row'>34</th><td class='is_on'>2</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_empty'>0</td><td class='is_off'>&nbsp;</td></tr></tbody></table>		
    Выглядит вот так:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Задаю парсинг повторяющихся границ, получаю массив данных:
    ,28,29,30,31,32,33,34,36,38,40,
    32,34
    0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,
    но как увязать это в таблицу и главное, как сопоставить сетку размеров (первые две строки) и наличие (третья строка)?
    В идеале получить такую строку:
    28/34 - 2;
    т.е. Все размеры без наличия игнорировать, размеры с наличием через разделитель ";" в одну ячейку.

    PS Макрос HORIZONTABLE не смог проверить, лицензия старт. Он сможет распарсить такой код?
     
    Последнее редактирование: 16 авг 2015
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Макрос [HORIZTABLE]HTML-код таблицы[/HORIZTABLE] вам в помощь.
    Ссылки недоступны для гостей - подробностм в справке
    п.с. иного решения не приходит покачто на ум.
     
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    HORIZTABLE дает такой вот результат (смотрите аттач).
     

    Вложения:

  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Специализированных макросов для решения подобных задач сейчас у нас нет. По срокам реализации этого сейчас ничего сказать не могу. Тем более в соседней теме долг у меня давно висит.

    Как вариант - написать/заказать PHP-скрипт для разбора такой таблицы (его можно будет подключить к Content Downloader Ссылки недоступны для гостей).

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

    endruscott New Member Пользователи

    Регистрация:
    16 авг 2015
    Сообщения:
    2
    Добрый вечер.
    Результат Horiztable не совсем корректный. Информацию о росте модели он игнорировал. Видите там сложная таблица? У нее первый столбец несет информацию о росте артикула - "32" и "34", А размеры, соответствующие этим ростовкам - в строках. Если развернуть таблицу, то получим:
    Рост 32 имеет размеры:28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
    Рост 34 имеет размеры:28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40

    Задача: "вытащить" Размер/Рост и значение соответствующей этому адресу ячейки.

    Надо так: 28/32 - 0; 29/32 -0; ..... 40/32 - 0; 28/34 - 2; 29/34 - 0; .... 40/34 -0;
    Вид разделителей может быть любым, понятное дело.

    Писал, не прочитав Ваш ответ выше. Про скрипт нужно подумать, хотя мне ближе макросы в Excel.
     
    Последнее редактирование: 16 авг 2015

Поделиться этой страницей