使用BeautifulSoup的findAll搜索html元素的innerText以获得与搜索属性相同的结果?

时间:2010-04-05 19:11:25

标签: python beautifulsoup

例如,如果我使用像id:

这样的元素属性进行搜索
soup.findAll('span',{'id':re.compile("^score_")})

我找回了匹配的整个span元素的列表(我喜欢)。

但是如果我尝试按照这样的html元素的innerText进行搜索:

soup.findAll('a',text = re.compile("discuss|comment")) 

我只回到元素背面的innerText部分,而不是像上面那样用标签和属性匹配整个元素。

这可能与找到匹配然后得到它的父母一起吗?

感谢。

1 个答案:

答案 0 :(得分:6)

你没有收回文字。你得到一个NavigableString的文字。该对象具有转到父等的方法

from BeautifulSoup import BeautifulSoup
import re

soup = BeautifulSoup('<html><p>foo</p></html>')

r = soup.findAll('p', text=re.compile('foo'))

print r[0].parent

打印

<p>foo</p>