Я использую BeautifulSoup для сбора данных с веб-сайта. В моей основной функции я распечатываю все «сильные» элементы из HTML-файла, но я хотел бы отфильтровать текст, который я не хочу печатать.
x = "abcdef"
for i,strong in enumerate(html.select("strong")):
print(i,strong.text)
В этом сценарии я хотел бы проверить, есть ли x в strong.text, а затем распечатать его, если текст его не содержит.
Было первое, что я попробовал, но ничего не вышло.
Большинство методов поиска в BeautifulSoup на основе bs4.element.SoupStrainer
принимают необязательный текстовый аргумент.
Когда этот аргумент является функцией, ему передается соответствующий узел (bs4.element.NavigableString
). например
matched_nodes = html.findAll('strong', text=lambda n: x in n.lower())
for i, strong in enumerate(matched_nodes):
print(i, matched_nodes)
просто добавьте
if
передprint
.if x in strong.text: