Если вы просто ищете обычный / видимый текст div без какой-либо разметки, вы можете получить доступ к этому тексту через атрибут searchResult.text
.
Метод Tag.find_all()
ищет только потомки из Tag
, чей name
соответствует данному аргументу.Так что в вашем случае он возвращает пустой список, потому что нет потомка <divs>
.Единственными потомками примера Tag
, которым вы поделились, являются тег <a>
, <span>
и несколько экземпляров NavigableString
(объект bs4
, используемый для представления видимого текста в дереве DOM).Если вы хотите использовать find_all()
для возврата <div>
в вашем примере, вам придется вызывать его из родительского Tag
(или, скорее, из любого элемента, потомком которого является цель <div>
).
Например, если вы сделаете:
from bs4 import BeautifulSoup as Soup
soup = Soup('<html><body><div id="results-from-CIDR"><a href="javascript:prefixContribsToggleAll();" id="prefixcontribs-tog">toggle all</a><span id="prefixcontribs-prog">Searching.</span> No changes were found for this wildcard/CIDR range.</div></body></html>')
soup.findall('div')
... тогда будет возвращен элемент , поскольку он является потомком soup
(htmldocroot).
Но опять же, если вы просто пытаетесь извлечь текст, используйте атрибут .text
, который дает видимый текст для данного тега и любого из его потомков.