2

一些 html 代码包含一些dt标签,如下所示:

<dt>PLZ:</dt>
<dd>
8047
</dd>

我想在带有 text 的dd标签后面的dt标签中找到文本PLZ:。根据文档,我正在尝试以下操作:

number = BeautifulSoup(text).find("dt",text="PLZ:").findNextSiblings("dd")

使用text上面的字符串,但我得到的只是一个空列表,而不是我正在寻找的数字(当然是字符串)。也许我误解了文档?

4

2 回答 2

2

所以试试:

from BeautifulSoup import BeautifulSoup

text = """
<dt>PLZ:</dt>
<dd>
8047
</dd>"""

number = BeautifulSoup(text).find("dt",text="PLZ:").parent.findNextSiblings("dd")
print BeautifulSoup(''.join(number[0]))

或者如果您使用 findNext 找到,请尝试:

number = BeautifulSoup(text).find("dt",text="PLZ:").parent.findNext("dd").contents[0]
于 2012-10-27T19:20:47.137 回答
0

这对我有用:

from BeautifulSoup import BeautifulSoup

text = '''<dt>PLZ:</dt>
<dd>
8047
</dd>'''


BeautifulSoup(text).find("dt",text="PLZ:").parent.findNextSiblings('dd')
于 2012-10-27T19:21:10.120 回答