Как сделать XPATH запрос с несколькими элементами?

Загружаю https://www.youtube.com/results?search_query=music
Пытаюсь с помощью XPATH запроса
//h3[@class='title-and-badge style-scope ytd-video-renderer']


найти строку
<a id="video-title" class="yt-simple-endpoint style-scope ytd-video-renderer" title="Best songs to boost your mood ~ Chill vibes  Chill out music mix playlist" href="/watch?v=E4KMnaOF7lU" aria-label="Best songs to boost your mood ~ Chill vibes  Chill out music mix playlist by Chilled Feelings 14 hours ago 56 minutes 42,032 views">


Но находит только: 610942b13791f313799988.jpeg

Как изменить XPATH чтоб находил в выдаче все элементы и чтоб в каждом было сразу title="" href="" aria-label=""
и желательно чтоб ставил между ними разделитель, например такой @@@ .

Должно получится что-то вроде этого: Best songs to boost your mood ~ Chill vibes Chill out music mix playlist @@@ /watch?v=E4KMnaOF7lU @@@ Best songs to boost your mood ~ Chill vibes Chill out music mix playlist by Chilled Feelings 14 hours ago 56 minutes 42,032 views
  • Вопрос задан
  • 271 просмотр
Решения вопроса 1
mik777em
@mik777em Автор вопроса
Вот решение, я сам нашел (для Browser Automation Studio):

//a[@id='video-title']/@*[name()='title' or name()='href' or name()='aria-label']


[[XPATH_TEXT_LIST]][0]
[[XPATH_TEXT_LIST]][1]
[[XPATH_TEXT_LIST]][2]

Это первые 3 элемента и так до конца. Лучше всего использовать цикл для обработки данных и записи их в файл или в Excel. Лучше всего было бы записать в файл CSV, а не просто открыть его в excel


При использовании цикла проще использовать следующие обозначения для LIST VARIABLE>

VAR_XPATH_TEXT_LIST[0]
VAR_XPATH_TEXT_LIST[1]
VAR_XPATH_TEXT_LIST[2]


Запятых в списке нет. Они просто появляются, когда вы LOG LIST VARIABLE, и они не смешиваются с существующими запятыми в тексте.


Создайте куб lLOG, установите для него «ВЫРАЖЕНИЕ» и вставьте внутрь следующий код - он выведет то, что вы хотите. Но это совсем не нужно, вам просто нужно обработать список в LOOP и записать / вывести все, что вам нужно.
code >

VAR_XPATH_TEXT_LIST[0] + "@@@" + VAR_XPATH_TEXT_LIST[1] + "@@@" + VAR_XPATH_TEXT_LIST[2]

не забудьте установить "ВЫРАЖЕНИЕ"



Лучше использовать LOOP. Например FOR LOOP. Перед тем, как создать цикл, сначала проверьте, сколько элементов находится в списке с помощью «Номер элемента» из МОДУЛЯ СПИСКА. Затем создайте FOR LOOP, начиная с 0 (потому что индекс элементов списка начинается с 0) и TO "ELEMENT NUMBER" - 1 (минус 1), потому что вы начали с 0, а конечный номер LIST INDEX на самом деле LIST LENGTH - 1. Внутри этого цикла напишите в файл TXT, CSV или EXCEL, что вам нужно,

И используйте CYCLE INDEX цикла как LIST ELEMENT INDEX, КАК ЭТО - VAR_XPATH_TEXT_LIST [[[CYCLE_INDEX]]]. И установите условие для записи новой строки через каждые 3 цикла - в данном случае это 2 | 5 | 8 | 11 и т. Д., Потому что оно начинается с 0, поэтому 012 - 345 - 678 и т. Д.

Это делается выдачей в логе или записей в переменную вот этого:
VAR_KOD_VSEY_STRANIZY[ [[CYCLE_INDEX]] * 3 ] + "@@@" + VAR_KOD_VSEY_STRANIZY[ [[CYCLE_INDEX]] * 3 + 1 ] + "***trash1***" + VAR_KOD_VSEY_STRANIZY[ [[CYCLE_INDEX]] * 3 + 2 ]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы