我写了一个脚本来从下面粘贴的元素中获取食物名称,但我找不到任何方法来获取名称。我不愿意贬低这些价值观。有什么方法可以从下面的元素中获得食物名称吗?
这是我到目前为止所尝试的:
from bs4 import BeautifulSoup
content="""
<foods>
<apple>green</apple>
<strawberry>red</strawberry>
<banana>yellow</banana>
</foods>
"""
soup = BeautifulSoup(content,"lxml")
data = [item for item in soup.select("foods")]
print(data)
如果我按原样运行我的脚本,它会生成content
中可用的完全相同的元素。
输出我期待:
apple,strawberry,banana
答案 0 :(得分:2)
试试这个:
>>> data = [x.name for x in soup.find('foods').findChildren()]
>>> data
['apple', 'strawberry', 'banana']
我想这是不言自明的。
答案 1 :(得分:1)
由于您的内容采用XML格式,因此您可以使用xml.etree.ElementTree
模块从内容中提取数据,如下所示:
import xml.etree.ElementTree as ET
content="""
<foods>
<apple>green</apple>
<strawberry>red</strawberry>
<banana>yellow</banana>
</foods>
"""
foods = ET.fromstring(content)
for food in foods:
print(food.tag)
# Output: apple,strawberry,banana