2017-04-03 71 views
1

有没有办法让beautifulsoup不会在xml文件或<html> </html>标记的开头添加<?xml version="1.0" encoding="utf-8"?>如何使Beautifulsoup不添加<html>或<?xml ?>

我读过bs4 doc并试过xml,html和lxml解析器,但结果很相似。 我也测试过soup.find('?xml'),这个没什么返回。

$ python 
Python 2.7.5 (default, Aug 2 2016, 04:20:16) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from bs4 import BeautifulSoup 
>>> xml='<tag>value</tag>' 
>>> soup=BeautifulSoup(xml,'xml') 
>>> soup 
<?xml version="1.0" encoding="utf-8"?> <=============== 
<tag>value</tag> 
>>> soup.find('?xml') 
>>> soup=BeautifulSoup(xml,'html') 
>>> soup 
<html><body><tag>value</tag></body></html> <=========== 
>>> soup=BeautifulSoup(xml,'lxml') 
>>> soup 
<html><body><tag>value</tag></body></html> <=========== 
>>> 

回答

1
#You can directly print the tag (or body). Hope this helps. 
from bs4 import BeautifulSoup 
xml='<tag>value</tag>' 
soup=BeautifulSoup(xml,'lxml') 
soup.tag #or soup.body 

#Output: 
<tag>value</tag> 
+0

谢谢!这是唯一可行的方法。 – Yang

相关问题