@UserTrue
Когда искал по форуму, часто встречал ответы этого пользователя. Если найдется минутка, поделитесь опытом. Пока выделил два возможных решения замены curl http. Может есть еще варианты? Какой вариант для вас лучше?
Помогите с 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 -
@Zack9 said in Помогите с xpath:
@Fox //*[contains(@class,'MosiacAsset-module__thumb')]/@alt>AT>4 так стопается просто, ничего не показывает, да я и в хроме не могу порядковый номер указать, я вообще не понимаю как его указывать и причины почему он не срабатывает
Это селектор BAS, не надо его в xpath запихивать
-
@Zack9 said in Помогите с xpath:
@Fox я через запросы делаю, Xpath получить xml, без браузера

а затем "foreach"
-
@Fox нет, я просто пример привёл. Я знаю что можно сразу все элементы получить, но для некоторых задач мне нужно в цикле по каждому элементу пройтись.
вот в хроме по 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] -
@Fox @GhostZ да спасибо, так срабатывает
@GhostZ единственное предложение для модуля Цикл, CYCLE_INDEX всегда с нуля начинается, вот с xpath например когда цакл индекс вставляешь, то 0 элемент он не находит и ошибка получается, нужно доп логику прописывать там увеличивать или пропускать. Добавь плиз в модуль также возможность своё значение для начала отчёта устанавливать, чтобы CYCLE_INDEX можно было сразу с 1 начинать