У меня есть два элемента div, которые я пытаюсь очистить, с тем же именем (но на странице есть и другие элементы div с частичным совпадением имен, которые мне не нужны).
Сначала мне просто нужен текст внутри каждого элемента span. Во втором мне нужен текст внутри элемента span, для первого
тогда мне нужен текст внутри тегов
для строк 2 и 3.
Я даже не очень уверен, почему мне нужно нарезать в конце div'ов (я думаю, потому что div-класс col возвращает больше, чем 2 релевантных div-ов, но добавление: 1 в конце div-ов, кажется, помогает)
Мои вопросы - как получить точное совпадение по имени div
Как скрести внутри р-теги
Как объединить результаты из вышеперечисленного. Я могу получить текст внутри тегов span, как показано ниже, но, как я уже сказал выше, мне также нужен текст внутри тегов p и объединить результаты.
Данные поступают из раздела сведений об игроке в этом URL - https://www.skysports.com/football/player/141016/alisson-ramses-becker
HTML выглядит так
<div class="row-table details -bp30">
<div class="col">
<p>Name: <strong><span itemprop="name">Alisson Ramses Becker</span></strong></p> <p>Date of birth:<span itemprop="birthDate">02/10/1992</span></p> <p>Place of birth:<span itemprop="nationality"> Brazil</span></p>
</div>
<div class="col">
<p>Club: <span itemprop="affiliation">Liverpool</span></p><p>Squad: 13</p> <p>Position: Goal Keeper</p>
</div>
</div>
Соответствующий фрагмент моей программы
premier_soup1 = player_soup.find('div', {'class': 'row-table details -bp30'})
premier_soup_tr = premier_soup1.find_all('div', {'class': 'col'})
divs = player_soup.find_all( 'div', {'class': 'col'})
for div in divs[:1]:
para = div.find_all('p')
print(para)
Вывод -
[<p class="text-h4 title">Player Details</p>, <p>Name: <strong><span itemprop="name">Alisson Ramses Becker</span></strong></p>, <p>Date of birth:<span itemprop="birthDate">02/10/1992</span></p>, <p>Place of birth:<span itemprop="nationality"> Brazil</span></p>, <p>Club: <span itemprop="affiliation">Liverpool</span></p>, <p>Squad: 13</p>, <p>Position: Goal Keeper</p>]
Также - я знаю, что могу получить текст span с помощью этого
divs = player_soup.find_all( 'div', {'class': 'col'})
for div in divs[:1]:
spans = div.find_all('span')
for span in spans:
print(span.text, ",", end=' ')
Вывод -
Alisson Ramses Becker , 02/10/1992 , Brazil , Liverpool ,