我想访问名为"name"
的标记,例如:
<contact><name>Yesügey</name><lastName>Yeşil</lastName><phone>+90 333 9695395</phone></contact>
由于"name"
是BeautifulSoup标记对象的属性,因此我无法访问子标记name
:
>>> c1
<contact><name>Yesügey</name><lastname>Yeşil</lastname><phone>+90 333 9695395</p
hone></contact>
>>> c1.name
'contact'
>>> c1.lastname
<lastname>Yeşil</lastname>
答案 0 :(得分:17)
你可以这样试试,
>>> soup=BeautifulSoup.BeautifulSoup(content).findAll('name')
>>> for field in soup:
... print field
...
<name>Yesügey</name>
或者
print soup.find('name').string
答案 1 :(得分:5)
这是我得到的:
from bs4 import BeautifulSoup as BS
soup = '<contact><name>Yesügey</name><lastName>Yeşil</lastName><phone>+90 333 9695395</phone></contact>'
soup = BS(soup)
print soup.find('name').string
# Prints YesĂźgey
因此,我只是找到它并获取其中的内容而不是调用名称标签。)。
答案 2 :(得分:2)
您可以使用.find()
方法:
示例:
c2.find('name')
&LT;名称&gt;&YesügeyLT; /名称&gt;
c2.find('name').contents
Yesügey
答案 3 :(得分:0)
描述了两种不同的访问xml元素名称的策略
>>> xmlstring = '<contact><name>Yesügey</name><lastName>Yeşil</lastName><phone>+90 333 9695395</phone></contact>'
>>> from BeautifulSoup import BeautifulSoup as Soup
>>> f = Soup(xmlstring)
>>> f.find('name')
<name>YesĂźgey</name>
>>> f.contact.name
u'contact'
>>>