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

Gunjubasik

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

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

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

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

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


Заранее, очень благодарен за помощь!
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 546
Баллы
113
Скиньте ссылки на страницы для которых требуются xpath-выражения.
Составлять запрос по скриншотам - это извращение :-)
 
  • Спасибо
Реакции: LifeIsCool

Platon

Client
Регистрация
26.09.2015
Сообщения
260
Благодарностей
121
Баллы
43
Попробуй вот так //p[@class='вместо моего текста вставить значение на скрине']/span

53837
 
  • Спасибо
Реакции: luk911

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
так там уникальный класс есть 53839 ищите p c этим классом и спан внутри. То что вам нужно.
//p[@class='c-history__cellMoney--credit']/span
 
Последнее редактирование:

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 458
Благодарностей
1 291
Баллы
113
Скиньте ссылки на страницы для которых требуются xpath-выражения.
Составлять запрос по скриншотам - это извращение :-)
Прикрепил Html

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

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

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

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

Вложения

  • 42,7 КБ Просмотры: 22
Последнее редактирование модератором:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 698
Баллы
113

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 458
Благодарностей
1 291
Баллы
113
Спасибо, большое. Скажите, пожалуйста, что вы использовали, что бы сложить такую формулу? Как мне такое научится писать?
//div[@class='c-history__cell' and (text()='Purchase') or (text()='Target Closed')]/ancestor::app-history-item//p[contains(@class,'c-history__cellMoney')]/span
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 698
Баллы
113
Спасибо, большое. Скажите, пожалуйста, что вы использовали, что бы сложить такую формулу? Как мне такое научится писать?
искать информацию в интернете по данному вопросу и изучать ее.
начните с этих ссылок

а вот щас ниже будет банальщина , которая ну вот прям никому не нравиться, но мне пофиг :ce:
и самое главное GOOGLE в помощь :-)
 
  • Спасибо
Реакции: Lest и Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 458
Благодарностей
1 291
Баллы
113
А как вытащить отсюда имя: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 в помощь :-)
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 698
Баллы
113
вот же он, элемент уже найден, нужно просто получить данные по имени атрибута. имя "alt"
53868
 
  • Спасибо
Реакции: Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 458
Благодарностей
1 291
Баллы
113
Да-да, я уже понял, спасибо. Просто в прошлой теме мне показали краткий список атрибутов - с конструктора действий - я туда код вставлял и искал, а потом методом тыка - вставил alt - так как похоже на атрибут и вышло.

вот же он, элемент уже найден, нужно просто получить данные по имени атрибута. имя "alt"
Посмотреть вложение 53868
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 698
Баллы
113
Да-да, я уже понял, спасибо. Просто в прошлой теме мне показали краткий список атрибутов - с конструктора действий - я туда код вставлял и искал, а потом методом тыка - вставил alt - так как похоже на атрибут и вышло.
в конструкторе присутсвуют только самые распространенные. а так можно вытащить любой атрибут если он есть на странице. так же есть еще скрытые атрибуты которые сам зеннопостер расчитывает. ну это уже в документации смотреть надо или на форуме. на форуме вообще полно информации, поиск по форуму рулит.
 

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