代码:
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
不在结果集中?我怎样才能拿到它?
soup.div()
是soup.div.find_all()
的快捷方式,它可以在div
标签中找到所有标签,正如您所看到的,它可以完成任务。TEST
是p
标签之间的文本,或者换句话说,是第一个p
标签的tail
。
您可以通过获取第一个p
标签并使用.next_sibling
:来获取TEST
字符串
>>> soup.div.p.next_sibling
u'TEST'
或者,通过获取div
的.contents
:的第二个元素
>>> soup.div.contents[1]
u'TEST'
来自bs4
import BeautifulSoup
soup = BeautifulSoup('<div><p>p1</p>TEST<p>p2</p></div>')
print soup.div.text
u'p1TESTp2'