У меня есть следующий HTML код:
<a class="nav-link" href="https://cbd420.ch/fr/tous-les-produits/">
<span class="cbp-tab-title">
Shop <i class="fa fa-angle-down cbp-submenu-aindicator"></i></span>
</a>
Я хотел бы получить тег привязки, который имеет Shop
в качестве текста без учета расстояния до и после. Я пробовал следующий код, но я продолжаю получать пустой массив:
import re
html = """<a class="nav-link" href="https://cbd420.ch/fr/tous-les-produits/">
<span class="cbp-tab-title">
Shop <i class="fa fa-angle-down cbp-submenu-aindicator"></i></span>
</a>"""
soup = BeautifulSoup(html, 'html.parser')
prog = re.compile('\s*Shop\s*')
print(soup.find_all("a", string=prog))
# Output: []
Я также пытался извлечь текст с помощью get_text()
:
text = soup.find_all("a")[0].get_text()
print(repr(text))
# Output: '\n\n\t\t\t\t\t\t\t\tShop \n'
и запустил следующий код для убедитесь, что мой Regex был прав, что похоже на случай.
result = prog.match(text)
print(repr(result.group()))
# Output: '\n\n\t\t\t\t\t\t\t\tShop \n'
Я также попытался выбрать span
вместо a
, но у меня возникла та же проблема. Я предполагаю, что это что-то с find_all
, я прочитал документацию BeautifulSoup , но я все еще не могу найти проблему. Любая помощь будет оценена. Спасибо!