Как проверить, находятся ли элементы дерева разбора BeautifulSoup в одном теге <p>?
<p>
Если вы знаете, что оба узла находятся непосредственно под тегом <p>, проверьте равенство узлов nodea.getParent() == nodeb.getParent(); в общем, ищите (рекурсивно) вверх, пока не нажмете тег <p>. Сделайте это отдельно для каждого узла, затем сравните результаты на равенство:
nodea.getParent() == nodeb.getParent()
getContainingPara(nodea) == getContainingPara(nodeb)
(Давайте проигнорируем угловой случай вложенных тегов <p>.)
иначе, переберите все теги <p>, используя текстовый поиск или регулярные выражения для поиска совпадений в обоих:
pat1 = re.compile(regex1) pat2 = re.compile(regex2) for para in soup.findAll('p'): mat1 = pat1.search(para) mat2 = pat2.search(para) if not (mat1 or mat2): continue # found your match