Попробуйте приведенный ниже код. Вы можете использовать модуль re
для поиска определенного текста.
import bs4
import re
html_doc="""<html><p class="player-details">
<span>#10</span>
<span>G</span>
<span>Hawks</span>
</p></html>"""
soup = bs4.BeautifulSoup(html_doc, 'html.parser')
find_p=soup.find('p' ,class_='player-details')
findspan=find_p.find('span' ,text=re.compile("Hawks"))
print(findspan.text)
Вывод:
Hawks
Или Если вы хотите извлечь все значения из диапазонапопробуйте это.
import bs4
html_doc="""<html><p class="player-details">
<span>#10</span>
<span>G</span>
<span>Hawks</span>
</p><p class="player-details">
<span>#20</span>
<span>G</span>
<span>Hawks</span>
</p></html>"""
soup = bs4.BeautifulSoup(html_doc, 'html.parser')
find_p=soup.find_all('p' ,class_='player-details')
for p in find_p:
findspan=p.find_all('span')
for sp in findspan:
print(sp.text)
Вывод:
#10
G
Hawks
#20
G
Hawks
Дайте мне знать, если вы ищете.