Поиск элементов на странице по содержимому

AndyS

Client
Регистрация
24.01.2020
Сообщения
17
Благодарностей
3
Баллы
3
Всем привет!

Подскажите, пожалуйста, как можно найти элемент на странице и взять его в переменную если:
1. Кусок кода:
HTML:
<div class="item">
    <div class="subitem">Некий статичный текст</div>
    <div class="target">Динамичный текст, который нужно взять в переменную</div>
</div>
2. Подобных кусков html на странице много. И содержимое постоянно меняется.
3. Отталкиваться нужно от "Некий статичный текст". Так как именно рядом с ним и находится нужный DIV. И "Некий статичный текст" всегда один и тот же.

Как я это понимаю, нужно сначала взять див с классом "item", содержащий "Некий статичный текст". И в этом диве уже взять содержимое дива "target".
Буду очень благодарен, если найдется такое решение! Заранее всем спасибо!
 

Deisler

Client
Регистрация
26.10.2019
Сообщения
482
Благодарностей
183
Баллы
43
Решение называется XPath.
Вам нужно разобраться как он работает.

В вашем примере путь должен выглядеть так
//div[text()='Статичный текст']//following-sibling::div[@class='target']
 
  • Спасибо
Реакции: izubr

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
Также можно применить регулярное выражение: (?<=Некий\ статичный\ текст</div>)[\w\W]*?(?=</div>) Но этот вариант немного больше телодвижений может иметь. Либо регулярку сделать более сложную, которая сразу будет вычленять нужный текст.

Серия скриншотов, иллюстрирующая возможные шаги обработки:
117194


117195

117196

117197
 
  • Спасибо
Реакции: izubr

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