BeautifulSoup - как получить второй следующий товар в красивом супе? - PullRequest
1 голос
/ 30 января 2020
<div _ngcontent-c2=""><span _ngcontent-c2="" class="text-secondary">Claim date: </span><span _ngcontent-c2="" class="text-primary">26 September, 2018</span></div>

Я хочу найти текст 26 September, 2018 сверху после поиска Claim date:.

Я пробовал findNext, find_next_sibling и множество других предложений.

Есть несколько _ngcontent2 и text-primary.

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 30 января 2020

Вы можете использовать regex.Import re. а затем найдите текст тега span, а затем найдите тег span_next span.

import re
html='''<div _ngcontent-c2=""><span _ngcontent-c2="" class="text-secondary">Claim date: </span><span _ngcontent-c2="" class="text-primary">26 September, 2018</span></div>'''
soup=BeautifulSoup(html,'html.parser')
print(soup.find('span',text=re.compile('Claim date:')).find_next('span').text)

Вывод:

26 September, 2018

ИЛИ, если у вас есть bs4 4.7.1 или выше вы можете использовать css селектор.

html='''<div _ngcontent-c2=""><span _ngcontent-c2="" class="text-secondary">Claim date: </span><span _ngcontent-c2="" class="text-primary">26 September, 2018</span></div>'''
soup=BeautifulSoup(html,'html.parser')
print(soup.select_one('span:contains("Claim date:")').find_next('span').text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...