Python Beatifulsoup标记名称和属性冲突

时间:2014-04-10 12:11:22

标签: python beautifulsoup

BeautifulSoup元素具有.text属性(.get_text() method的属性版本)。

BeautifulSoup还允许您访问属性等标签:

soup.firstparent.secondparent.dosomething #etc

现在,出于不幸但不可改变的原因,我的任务是访问您要访问的<text>元素:

soup.firstparent.text.dosomething 
#in this case, 'text' tag is child node of the 'firstparent' tag

然而,这与BeautifulSoup提供的.text属性冲突。问题是 - 如何访问名为text的标记,并避免与BeautifulSoup属性冲突?

1 个答案:

答案 0 :(得分:0)

属性访问是一种便利;您仍然可以使用.find()来搜索代码:

soup.firstparent.find('text').dosomething

.find('text')调用将搜索第一个<text>标记,而不是调用BeautifulSoup .text属性。

演示:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('''
... <div><text>Hello world!</text></div>''')
>>> soup.div.text
u'Hello world!'
>>> soup.div.find('text')
<text>Hello world!</text>