Как парсить с помощью Xpath - при наличии двух разных элементов.

  • Автор темы Автор темы The_vAe
  • Дата начала Дата начала

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 759
Реакции
1 493
Баллы
113
Всем доброго времени суток. Нужно помочь спарсить одним кодом все цены у которых есть в коде имя Purchase и Target Closed.
Есть обозначения цены(0.64) ориентир - его брат, у которого имя Purchase:
53831

И есть обозначения цены(0.18) ориентир - его брат, у которого имя Target Closed :
53832

Проблема в том, что между ними в их семье(общем коде) есть цены, у которых другие братья (обозначения):
53833

А в закрытом варианте, код семьи выглядит вот так:
53834

Подскажите, пожалуйста, как же все-таки собрать Xpath, что бы мог спарсить только все цены, у которых братья Purchase и Target Closed. И положить все в 1 блокнот.
Самое главное что поочередность цен должна быть как нашли в коде.


Заранее, очень благодарен за помощь!
 
Скиньте ссылки на страницы для которых требуются xpath-выражения.
Составлять запрос по скриншотам - это извращение :)
 
  • Оценить
Реакции: LifeIsCool
Попробуй вот так //p[@class='вместо моего текста вставить значение на скрине']/span

53837
 
  • Оценить
Реакции: luk911
так там уникальный класс есть 53839 ищите p c этим классом и спан внутри. То что вам нужно.
//p[@class='c-history__cellMoney--credit']/span
 
Последнее редактирование:
Скиньте ссылки на страницы для которых требуются xpath-выражения.
Составлять запрос по скриншотам - это извращение :-)
Прикрепил Html

Попробуй вот так //p[@class='вместо моего текста вставить значение на скрине']/span

Посмотреть вложение 53837
Если все было бы так легко, не было бы проблемы. Я для примера показал код, что бы научили составлять код Xpath, по брату (соседнему коду) в одной ветке. Вот здесь же в этом же коде, нужно спарсить все имена у которых братья Purchase и Target Closed. Так как по вашему коду - теперь будет забирать все товары, даже если у него брат с именем Sell

так там уникальный класс есть
53839
ищите p c этим классом и спан внутри. То что вам нужно.
53857

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

Вложения

  • code.txt
    code.txt
    42,7 KB · Просмотры: 22
Последнее редактирование модератором:
//div[@class='c-history__cell' and (text()='Purchase') or (text()='Target Closed')]/ancestor::app-history-item//p[contains(@class,'c-history__cellMoney')]/span
 
  • Оценить
Реакции: luk911 и The_vAe
Спасибо, большое. Скажите, пожалуйста, что вы использовали, что бы сложить такую формулу? Как мне такое научится писать?
//div[@class='c-history__cell' and (text()='Purchase') or (text()='Target Closed')]/ancestor::app-history-item//p[contains(@class,'c-history__cellMoney')]/span
 
Спасибо, большое. Скажите, пожалуйста, что вы использовали, что бы сложить такую формулу? Как мне такое научится писать?
искать информацию в интернете по данному вопросу и изучать ее.
начните с этих ссылок

а вот щас ниже будет банальщина , которая ну вот прям никому не нравиться, но мне пофиг :ce:
и самое главное GOOGLE в помощь :)
 
  • Оценить
Реакции: Lest и The_vAe
А как вытащить отсюда имя:M4A4 | Magnesium (Battle-Scarred)
53865
C#:
Развернуть Свернуть Копировать
//asset-card [@class='c-asset ng-star-inserted']//div[@_ngcontent-dmarket-c15][@class='c-asset__figure']//img[@alt]
Со своим кодом - не могу подобрать атрибут для вытягивания имени.Или alt и есть атрибут? Да, он и есть походу, но так как дорога неверная - много лишних имен находит. Спасибо за помощь.



искать информацию в интернете по данному вопросу и изучать ее.
начните с этих ссылок

а вот щас ниже будет банальщина , которая ну вот прям никому не нравиться, но мне пофиг :ce:
и самое главное GOOGLE в помощь :-)
 
Последнее редактирование:
вот же он, элемент уже найден, нужно просто получить данные по имени атрибута. имя "alt"
53868
 
  • Оценить
Реакции: The_vAe
Да-да, я уже понял, спасибо. Просто в прошлой теме мне показали краткий список атрибутов - с конструктора действий - я туда код вставлял и искал, а потом методом тыка - вставил alt - так как похоже на атрибут и вышло.

вот же он, элемент уже найден, нужно просто получить данные по имени атрибута. имя "alt"
Посмотреть вложение 53868
 
Да-да, я уже понял, спасибо. Просто в прошлой теме мне показали краткий список атрибутов - с конструктора действий - я туда код вставлял и искал, а потом методом тыка - вставил alt - так как похоже на атрибут и вышло.
в конструкторе присутсвуют только самые распространенные. а так можно вытащить любой атрибут если он есть на странице. так же есть еще скрытые атрибуты которые сам зеннопостер расчитывает. ну это уже в документации смотреть надо или на форуме. на форуме вообще полно информации, поиск по форуму рулит.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)