Я пытаюсь использовать весь текст (видимый пользователем) в HTML-файле. Вот очевидная вещь:Настройка всего текста в дереве DOM с помощью BeautifulSoup
from bs4 import BeautifulSoup
def upcaseAll(str):
soup = BeautifulSoup(str)
for tag in soup.find_all(True):
for s in tag.strings:
s.replace_with(unicode(s).upper())
return unicode(soup)
Это происходит сбой:
File "/Users/malvolio/flip.py", line 23, in upcaseAll
for s in tag.strings:
File "/Library/Python/2.7/site-packages/bs4/element.py", line 827, in _all_strings
for descendant in self.descendants:
File "/Library/Python/2.7/site-packages/bs4/element.py", line 1198, in descendants
current = current.next_element
AttributeError: 'NoneType' object has no attribute 'next_element'
Все варианты я могу думать о аварии точно так же. BS4, похоже, не нравится, когда я заменяю много NavigableStrings. Как я могу это сделать?
Как насчет использования 'find_all (text = True)' вместо этого? – alecxe