Как выбрать из div ссылки у которых есть тег strong?
Например
<a href="https://">Какая то ссылка <strong>(0)</strong></a>
ссылки которые не имеют в себе strong не нужны.
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Варианты:
- Можно через css-селектор задать условие, чтобы выборка была для тех
<a>, у которых есть вложенный<strong>:a:has(strong) - Или запросить все
<a>, а у них проверить наличие вложенного<strong>
Пример:
from bs4 import BeautifulSoup
html = """
<div>
<a href="https://">Какая то ссылка <strong>(0)</strong></a>
<a href="https://">Какая то ссылка (1)</a>
<div>
<a href="https://">Какая то ссылка <strong>(2)</strong></a>
</div>
</div>
"""
root = BeautifulSoup(html, 'html.parser')
for a in root.select('a:has(strong)'):
print(a)
# <a href="https://">Какая то ссылка <strong>(0)</strong></a>
# <a href="https://">Какая то ссылка <strong>(2)</strong></a>
print()
for a in root.select('a'):
if a.strong is None:
continue
print(a)
# <a href="https://">Какая то ссылка <strong>(0)</strong></a>
# <a href="https://">Какая то ссылка <strong>(2)</strong></a>