Помогите с xpath для перебора

Поддержка
  • Не могу найти ответ нигде, подскажите есть сайт к примеру https://www.istockphoto.com/ru/search/2/image?mediatype=illustration&orientations=horizontal&phrase=money&sort=newest

    составил для него xpath такой //*[contains(@class,'MosiacAsset-module__thumb')]/@src , ОК он валидный, но дальше хочу к примеру получить конкретный элемент из 60, везде в манулах добавляют [порядковый номер] пробую в конце добавить [3] к примеру, но ничего не срабатывает, как только не пробовал его пихать.

    Как правильно порядковый номер вставить, чтобы можно было перебирать? знаю ответ может простой, но я никак не найду решение

  • @Zack9 said in Помогите с xpath:

    Не могу найти ответ нигде, подскажите есть сайт к примеру https://www.istockphoto.com/ru/search/2/image?mediatype=illustration&orientations=horizontal&phrase=money&sort=newest

    составил для него xpath такой //*[contains(@class,'MosiacAsset-module__thumb')]/@src , ОК он валидный, но дальше хочу к примеру получить конкретный элемент из 60, везде в манулах добавляют [порядковый номер] пробую в конце добавить [3] к примеру, но ничего не срабатывает, как только не пробовал его пихать.

    Как правильно порядковый номер вставить, чтобы можно было перебирать? знаю ответ может простой, но я никак не найду решение

    Используйте префикс >AT>
    https://wiki.bablosoft.com/doku.php?id=ru:how_to_search_for_element

  • @Fox //*[contains(@class,'MosiacAsset-module__thumb')]/@alt>AT>4 так стопается просто, ничего не показывает, да я и в хроме не могу порядковый номер указать, я вообще не понимаю как его указывать и причины почему он не срабатывает

  • @Zack9 said in Помогите с xpath:

    @Fox //*[contains(@class,'MosiacAsset-module__thumb')]/@alt>AT>4 так стопается просто, ничего не показывает, да я и в хроме не могу порядковый номер указать, я вообще не понимаю как его указывать и причины почему он не срабатывает

    Это селектор BAS, не надо его в xpath запихивать

  • @Fox я через запросы делаю, Xpath получить xml, без браузера

  • @Zack9 said in Помогите с xpath:

    @Fox я через запросы делаю, Xpath получить xml, без браузера

    7b951545-27ac-474a-bad5-0f537a756ce6-изображение.png

    а затем "foreach"

  • @Fox нет, я просто пример привёл. Я знаю что можно сразу все элементы получить, но для некоторых задач мне нужно в цикле по каждому элементу пройтись.
    9d42455a-9f93-4688-8ee1-b10bd70825ba-image.png вот в хроме по xpath 60 элементов показывает, как мне перебор по ним сделать, как правильно [5] вписать, я это никак понять не могу, если он показывает 60 элементов, значит по ним можно через xpath запросом как-то перебор сделать, но у меня не получается никак и я не могу понять почему и где ошибка, что //*[contains(@class,'MosiacAsset-module__thumb')]/@src[5] не срабатывает

  • @Zack9 said in Помогите с xpath:

    @Fox нет, я просто пример привёл. Я знаю что можно сразу все элементы получить, но для некоторых задач мне нужно в цикле по каждому элементу пройтись.
    вот в хроме по xpath 60 элементов показывает, как мне перебор по ним сделать, как правильно [5] вписать, я это никак понять не могу, если он показывает 60 элементов, значит по ним можно через xpath запросом как-то перебор сделать, но у меня не получается никак

    Для этого вам нужно изменить xpath запрос. Можно конечно попробовать использовать функцию position(), но я не уверен, что она сработает в xpath BAS

    (//*[contains(@class,'MosiacAsset-module__thumb')]/@src)[position() = 1]
    
  • @Zack9, //div[contains(@class,'MosiacAsset-module__gallery')][5]/article/a/figure/img/@src

  • @Fox @GhostZ да спасибо, так срабатывает

    @GhostZ единственное предложение для модуля Цикл, CYCLE_INDEX всегда с нуля начинается, вот с xpath например когда цакл индекс вставляешь, то 0 элемент он не находит и ошибка получается, нужно доп логику прописывать там увеличивать или пропускать. Добавь плиз в модуль также возможность своё значение для начала отчёта устанавливать, чтобы CYCLE_INDEX можно было сразу с 1 начинать

  • @Zack9, для этого есть For цикл

  • @GhostZ а ок, да он пойдет. Тогда спасибо всё работает

  • 0 Votes
    2 Posts
    361 Views
  • 0 Votes
    9 Posts
    1127 Views
  • 0 Votes
    9 Posts
    2376 Views
  • VPS для BAS?

    Поддержка
    0 Votes
    35 Posts
    8630 Views
  • 0 Votes
    29 Posts
    8072 Views