1. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Парсинг нескольких результатов с помощью Xpath

Тема в разделе "Техническая поддержка", создана пользователем DeLaKroiX, 26 май 2021.

  1. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    какое-то время назад обращался в сапорт с вопросом, как можно с помощью одного Xpath-выражения спарсить несколько результатов. получил ответ, что никак. собственно отсюда и предложение по улучшению логики парсинга с помощью Xpath-выражений.

    пример: берём поисковик (в моём случае это был бинг) и распаршиваем код страницы на предмет тайтлов/дескрипшенов/линков/вопросов/ответов. проблема заключается в том, что с помощью одного выражения с переменной невозможно спарсить несколько результатов. например для парсинга вопросов можно использовать выражение
    Код:
    //html/body/div[1]/main/ol/li[2]/div/div/div[1]/div/div[2]/div/div[{$i}]/div/div[1]/div[1]/div
    где переменная "i" - счётчик, который можно было бы использовать средствами апарсера (как в Use Pages в парсере Net::HTTP), изменяя её от 1 до 4, чтобы получить 4 результата из выдачи. например сделать переключатель, сколько будет результатов - 1 или массив, и в случае массива использовать определённую переменную для перебора.
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.545
    Симпатии:
    2.163
    Если использовать XPath запрос, который возвращает не одно, а все совпадения, то вполне можно получить массив результатов:
    Код:
    html/body/div[*]/main/ol/li[2]/div/div/div[1]/div/div[2]/div/div[*]/div/div[1]/div[1]/div
    [​IMG]
    [​IMG]
     
    DeLaKroiX нравится это.
  3. DeLaKroiX

    DeLaKroiX A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    25 дек 2015
    Сообщения:
    267
    Симпатии:
    96
    а, вот оно чё ) я с Xpath ток познакомился, большое спасибо )
     

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