我有一些像这样的HTML代码:
<p>aaa</p>bbb
<p>ccc</p>ddd
如何获得'bbb'和'ddd'?
答案 0 :(得分:1)
你可以阅读每个p
标签的后续兄弟(注意这是非常具体的文本,所以希望它可以扩展到你的情况):
In [1]: from bs4 import BeautifulSoup
In [2]: html = """\
...: <p>aaa</p>bbb
...: <p>ccc</p>ddd"""
In [3]: soup = BeautifulSoup(html)
In [4]: [p.next_sibling for p in soup.findAll('p')]
Out[4]: [u'bbb\n', u'ddd']
这会获取尾随换行符,因此如果需要,您可以将其删除:
In [5]: [p.next_sibling.strip() for p in soup.findAll('p')]
Out[5]: [u'bbb', u'ddd']
一般的想法是你在目标文本之前找到标签,然后找到下一个兄弟元素,它应该是你的文本。
答案 1 :(得分:-2)
如果将值('bbb','ddd')括在标记中(<span>
)
然后你可以使用:汤('span')