Проблема, с которой вы столкнулись, заключается в том, что искомый текст разделяется тегами strong
внутри узла p
, и поэтому поиск по регулярному выражению с использованием аргумента text
в .find
не будет работать.это то, как это реализовано в BS.
Если вы знаете, что тексты находятся в p
узлах , вы можете использовать лямбда-выражение в вызове .find
и выполнить регулярное выражениевыполните поиск по свойству text
каждого тега p
, чтобы найти нужные элементы:
print(t2.find(lambda t: t.name == "p" and re.search(r'Questions*-And-Answers*', t.text)))
# => <p class="p p8"><strong>Question</strong>-<strong>And</strong>-<strong>Answer</strong></p>
Обратите внимание, что [s]
совпадает с s
в регулярном выражении.