在标签之间获取一个字符串(<div> <p> p1 </p> TEST <p> p2 </p> </div>中的TEST)

时间:2014-10-30 04:39:03

标签: python beautifulsoup

代码:

from bs4 import BeautifulSoup
soup = BeautifulSoup('<div><p>p1</p>TEST<p>p2</p></div>')
print soup.div()

结果:

[<p>p1</p>, <p>p2</p>]

为什么字符串TEST不在结果集中?我怎么能得到它?

2 个答案:

答案 0 :(得分:1)

soup.div()soup.div.find_all()的快捷方式,div标记内的find you all 标记 - 正如您所看到的,它可以完成工作。 TESTp代码之间的文字,换句话说,是第一个tail代码的p

您可以通过获取第一个TEST代码并使用.next_sibling来获取p字符串:

>>> soup.div.p.next_sibling
u'TEST'

或者,通过获取div&#39; s .contents的第二个元素:

>>> soup.div.contents[1]
u'TEST'

答案 1 :(得分:0)

来自bs4

import BeautifulSoup
soup = BeautifulSoup('<div><p>p1</p>TEST<p>p2</p></div>')
print soup.div.text
u'p1TESTp2'