OpenCV 4.0.0 SystemError: < class 'cv2.CascadeClassifier' > вернул результат с ошибкой

Проблема заключается в том, что ваши теги имеют вложенные теги, а текст, который вы ищете, находится внутри такого тега (p здесь).

Итак, самый простой подход - использовать лямбда внутри .find(), чтобы проверить имена тегов, и если свойство .text содержит ваш шаблон. Здесь вам даже не нужно регулярное выражение:

>>> tag = soup.find(lambda t: t.name in ['li','div','p','em'] and '4BDB1CD96' in t.text)
>>> tag
<p><em>code of Drink<br/></em>
Budweiser: 4BDB1CD96<br/>
price: 10$</p>
>>> tag.string
>>> tag.text
'code of Drink\nBudweiser: 4BDB1CD96\nprice: 10$'

Конечно, вы можете использовать регулярное выражение для более сложных поисков:

r = re.compile('4BDB1CD96') # or whatever the pattern is
tag = soup.find(lambda t: t.name in ['li','div','p','em'] and r.search(t.text))
1
задан Tyler Strouth 20 January 2019 в 02:21
поделиться