Jak zapobiec dodawaniu do zupy dodatkowych tagów <html> <body> przez BeautifulSoup4? [duplikować
To pytanie ma już odpowiedź tutaj:
Nie umieszczaj automatycznie tagów html, head i body, beautifulsoup 5 odpowiedziW wersjach BeautifulSoup wcześniejszych niż 3 mogłem pobrać dowolny fragment HTML i uzyskać ciąg znaków w następujący sposób:
from BeautifulSoup import BeautifulSoup
soup3 = BeautifulSoup('<div><b>soup 3</b></div>')
print unicode(soup3)
'<div><b>soup</b></div>'
Jednak w przypadku BeautifulSoup4 ta sama operacja tworzy dodatkowe tagi:
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>'
^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Nie potrzebuję zewnętrznego<html><body>..</body></html>
agi @, które dodaje BS4. Przejrzałem dokumenty BS4 i przeszukałem wewnątrz klasy, ale nie mogłem znaleźć żadnego ustawienia dla tłumienia dodatkowych znaczników w danych wyjściowych. Jak mam to zrobić? Zmiana na wersję v3 nie jest opcją, ponieważ parser SGML użyty w BS3 nie jest tak dobry jaklxml
lubhtml5lib
parsery, które są dostępne z BS4.