Хм, я не совсем уверен, но на данный момент код, как в ссылке (проверьте вопрос) работает для меня с небольшими изменениями, если он сломается, я напишу здесь
def tag_visible(element):
if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]', 'yatag']: # 'a'
return False
if isinstance(element, Comment):
return False
return True
def text_from_html(body):
soup = BeautifulSoup(body, 'html.parser')
texts = soup.findAll(text=True)
visible_texts = filter(tag_visible, texts)
return u" ".join(t.strip() for t in visible_texts)