BeautifulSoup 因为 XML 解析器产生不需要的 html/body
BeautifulSoup as XML parser produces an unwanted html/body
当对 XML 使用 BeautifulSoup 时:
import bs4
soup = bs4.BeautifulSoup('<?xml version="1.0" encoding="utf-8"?><mydocument><b></b></mydocument>', 'lxml')
# add or remove tags in soup
print(soup)
输出有一个不必要的 <html>
和 <body>
:
<?xml version="1.0" encoding="utf-8"?><html><body><mydocument><b></b></mydocument></body></html>
如何避免这些 HTML 特定元素并输出 XML 和 BeautifulSoup?
这不是有效的解决方案:
print(soup.find('mydocument'))
因为它删除了我想保留的 <?xml version="1.0" encoding="utf-8"?>
。
尝试以下方法之一:
my_xml = '<?xml version="1.0" encoding="utf-8"?><mydocument><b></b></mydocument>'
soup = bs4.BeautifulSoup(my_xml, "xml")
或
soup = bs4.BeautifulSoup(my_xml, "lxml-xml")
在任何一种情况下 print(soup)
应该输出:
<?xml version="1.0" encoding="utf-8"?>
<mydocument><b/></mydocument>
当对 XML 使用 BeautifulSoup 时:
import bs4
soup = bs4.BeautifulSoup('<?xml version="1.0" encoding="utf-8"?><mydocument><b></b></mydocument>', 'lxml')
# add or remove tags in soup
print(soup)
输出有一个不必要的 <html>
和 <body>
:
<?xml version="1.0" encoding="utf-8"?><html><body><mydocument><b></b></mydocument></body></html>
如何避免这些 HTML 特定元素并输出 XML 和 BeautifulSoup?
这不是有效的解决方案:
print(soup.find('mydocument'))
因为它删除了我想保留的 <?xml version="1.0" encoding="utf-8"?>
。
尝试以下方法之一:
my_xml = '<?xml version="1.0" encoding="utf-8"?><mydocument><b></b></mydocument>'
soup = bs4.BeautifulSoup(my_xml, "xml")
或
soup = bs4.BeautifulSoup(my_xml, "lxml-xml")
在任何一种情况下 print(soup)
应该输出:
<?xml version="1.0" encoding="utf-8"?>
<mydocument><b/></mydocument>