Как запретить BeautifulSoup4 добавлять дополнительные теги <html> <body> в суп? [Дубликат]
На этот вопрос уже есть ответ:
Не добавляйте теги html, head и body автоматически, Beautifulsoup 5 ответовВ версиях BeautifulSoup до 3 я мог взять любой кусок HTML и получить строковое представление следующим образом:
from BeautifulSoup import BeautifulSoup
soup3 = BeautifulSoup('<div><b>soup 3</b></div>')
print unicode(soup3)
'<div><b>soup</b></div>'
Однако с BeautifulSoup4 та же операция создает дополнительные теги:
from bs4 import BeautifulSoup
soup4 = BeautifulSoup('<div><b>soup 4</b></div>')
print unicode(soup4)
'<html><body><div><b>soup 4</b></div></body></html>'
^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Мне не нужно внешнее<html><body>..</body></html>
теги, которые добавляет BS4. Я просмотрел документы BS4, а также провел поиск внутри класса, но не смог найти никаких настроек для подавления дополнительных тегов в выводе. Как это сделать? Понижение до v3 не вариант, так как синтаксический анализатор SGML, используемый в BS3, не так хорош, какlxml
илиhtml5lib
парсеры, которые доступны с BS4.