¿Cómo evitar que BeautifulSoup4 agregue etiquetas <html> <body> adicionales a la sopa? [duplicar
Esta pregunta ya tiene una respuesta aquí:
No coloque etiquetas html, cabeza y cuerpo automáticamente, beautifulsoup 5 respuestasEn las versiones de BeautifulSoup anteriores a la 3, podría tomar cualquier fragmento de HTML y obtener una representación de cadena de esta manera:
from BeautifulSoup import BeautifulSoup
soup3 = BeautifulSoup('<div><b>soup 3</b></div>')
print unicode(soup3)
'<div><b>soup</b></div>'
Sin embargo, con BeautifulSoup4, la misma operación crea etiquetas adicionales:
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>'
^^^^^^^^^^^^ ^^^^^^^^^^^^^^
No necesito la @ exter<html><body>..</body></html>
etiquetas que BS4 está agregando. Revisé los documentos de BS4 y también busqué dentro de la clase, pero no pude encontrar ninguna configuración para suprimir las etiquetas adicionales en la salida. ¿Cómo lo hago? La degradación a v3 no es una opción, ya que el analizador SGML utilizado en BS3 no es tan bueno como ellxml
ohtml5lib
analizadores disponibles con BS4.