Como impedir o BeautifulSoup4 de adicionar tags <html> <body> extras à sopa? [duplicado
Esta pergunta já tem uma resposta aqui:
Não coloque tags html, head e body automaticamente, beautifulsoup 5 respostasNas versões BeautifulSoup anteriores a 3, eu poderia pegar qualquer parte do HTML e obter uma representação de string desta maneira:
from BeautifulSoup import BeautifulSoup
soup3 = BeautifulSoup('<div><b>soup 3</b></div>')
print unicode(soup3)
'<div><b>soup</b></div>'
No entanto, com BeautifulSoup4, a mesma operação cria tags adicionais:
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>'
^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Eu não preciso do @ exter<html><body>..</body></html>
tags que o BS4 está adicionando. Examinei os documentos do BS4 e também procurei dentro da classe, mas não consegui encontrar nenhuma configuração para suprimir as tags extras na saída. Como eu faço isso? Fazer o downgrade para a v3 não é uma opção, pois o analisador SGML usado no BS3 não é tão bom quanto olxml
ouhtml5lib
nalisadores disponíveis no BS