xpath, запрос возвращает пустой результат

Тема в разделе "PHP", создана пользователем SergXP, 19 сен 2011.

Модераторы: latteo
  1. SergXP

    SergXP Постоялец

    Регистр.:
    8 мар 2008
    Сообщения:
    66
    Симпатии:
    11
    Всем привет!
    Пытаюсь спарсить данные с одного известного сайта))
    По советам многих людей, решил это сделать через xpath
    имеем кусок кода:
    HTML:
    
    <table>
        <tr>
            <th class="b-properties__title" colspan="2">Общие характеристики</th>
        </tr>
        <tr>
            <th class="b-properties__label b-properties__label-title">
                <span>Стандарт</span>
            </th>
            <td class="b-properties__value">GSM 900/1800/1900, 3G (UMTS)</td>
        </tr>
        <tr>
            <th class="b-properties__label b-properties__label-title">
                <span>Тип</span></th>
            <td class="b-properties__value">смартфон/коммуникатор</td>
        </tr>
        <tr>
            <th class="b-properties__label b-properties__label-title">
                <span>Операционная система</span>
            </th>
            <td class="b-properties__value">iOS 4</td>
        </tr>
        <tr>
            <th class="b-properties__title" colspan="2">Экран</th>
        </tr>
        <tr>
            <th class="b-properties__label b-properties__label-title">
                <span>Тип экрана</span>
            </th>
            <td class="b-properties__value">цветной S-IPS, сенсорный</td>
        </tr>
        <tr>
            <th class="b-properties__label b-properties__label-title">
                <span>Тип сенсорного экрана</span>
            </th>
            <td class="b-properties__value">мультитач, емкостный</td>
        </tr>
        ...
        </table>
    
    группы характеристик и сами характеристики.
    отправляю запрос:
    PHP:
    $feat_group_count = new xpath($dom'/html/body/table[3]/tr/td[2]/table//tr');
    $feat_group_count->execute();
    $count count($feat_group_count->get());
    print_r($feat_group_count->get());
    получаю практически правильный массив:
    Код:
    Array
    (
        [0] => Общие характеристики
        [1] => СтандартGSM 900/1800/1900, 3G (UMTS)
        [2] => Типсмартфон/коммуникатор
        [3] => Операционная системаiOS 4
        [4] => Тип корпусаклассический
        [5] => Материал корпусасталь и стекло
        [6] => Вес137 г
        [7] => Размеры (ШxВxТ)59x115x9 мм
        [8] => Экран
        [9] => Тип экранацветной S-IPS, сенсорный
        [10] => Тип сенсорного экранамультитач, емкостный
        [11] => Диагональ3.5 дюйма
        [12] => Размер изображения640x960 пикс.
        [13] => Автоматический поворот экранаесть
        [14] => Русификацияесть
        [15] => Звонки
        [16] => Тип мелодийполифонические, MP3-мелодии
        [17] => Виброзвонокесть
        [18] => Мультимедийные возможности
        [19] => Фотокамера5 млн пикс., светодиодная вспышка
        [20] => Функции камерыавтофокус, цифровой Zoom 5x
        [21] => Запись видеороликовесть
        [22] => Макс. разрешение видео1280x720
        [23] => Макс. частота кадров видео30 кадров/с
        [24] => Geo Taggingесть
        [25] => Фронтальная камераесть
        [26] => Воспроизведение видеоH.264, MPEG-4, M-JPEG
        [27] => АудиоMP3, AAC, WAV
        [28] => Диктофонесть
        [29] => Разъем для наушников3.5 мм
        [30] => ВидеовыходTV-выход
        [31] => Связь
        [32] => ИнтерфейсыUSB, Wi-Fi, Bluetooth 2.1
        [33] => Зарядка от USBесть
        [34] => Встроенный GPS-приемникесть
        [35] => Cистема A-GPSесть
        [36] => Доступ в интернетGPRS, EDGE, HSDPA, HSUPA, POP/SMTP-клиент, HTML
        [37] => Модеместь
        [38] => Синхронизация с компьютероместь
        [39] => Память и процессор
        [40] => Слот карт памяти
    отсутствует
        [41] => Объем оперативной памяти (RAM)512 Мб
        [42] => Объем постоянной памяти (ROM)16384 Мб
        [43] => ПроцессорApple A4, 1000 МГц
        [44] => Сообщения
        [45] => MMSесть
        [46] => Питание
        [47] => Тип аккумулятораLi-Ion
        [48] => Время разговора14:00 ч:мин
        [49] => Время ожидания300 ч
        [50] => Время работы в режиме прослушивания музыки40 ч
        [51] => Другие функции
        [52] => Громкая связь (встроенный динамик)есть
        [53] => Управлениеголосовой набор, голосовое управление
        [54] => Автодозвонесть
        [55] => Датчикиосвещенности, приближения, гироскоп, компас
        [56] => Записная книжка и органайзер
        [57] => Органайзербудильник, калькулятор, планировщик задач
        [58] => Дополнительная информация
        [59] => Особенноститехнология экрана - Retina Display;  2 микрофона; службы iBooks, iAds, мультизадачность; расцветка - черный, белый
        [60] => Дата анонсирования (г-м-д)2010-06-07
    )
    
    но к сожалению, я не могу определить, что элементы 0,8,15 и тд - это группы, а не сами характеристики.
    мне нужно получить массив, в виде дерева.. но тут думаю разберусь)))
    вопрос, почему когда отправляю запрос:
    Код:
    /html/body/table[3]/tr/td[2]/table/tr[19]//th[@class="b-properties__title"]
    ничего не получаю?
    хотя FireBug говорит, что да, есть такой путь =(
    В чем проблема? Может необходимо превращать в валидный код?
    Или попробовать сделать на C# данного паука, для сбора данных..
    P.S. в xpath еще можно сказать новичек..
     
  2. SergXP

    SergXP Постоялец

    Регистр.:
    8 мар 2008
    Сообщения:
    66
    Симпатии:
    11
    В общем, все, разобрался ))))