对于这个问题,在网上大概找到两种靠谱点的回答,但实际上也是有问题的。
第一种方法
调用find(text=True).strip()
第二种方法
调用stripped_strings
测试代码
from bs4 import BeautifulSoup
html1 = """
<li>
<span class="hello"> hello</span>
world
<span class="hi"> hi</span>
good
</li>
"""
html2 = """
<li>
world
<span class="hello"> hello</span>
good
<span class="hi"> hi</span>
</li>
"""
a = BeautifulSoup(html1, "lxml").find('li').find(text=True).strip()
print("a=%s"%a)
b = BeautifulSoup(html1, "lxml").find('li').stripped_strings
print("b=%s"%list(b)[1])
a = BeautifulSoup(html2, "lxml").find('li').find(text=True).strip()
print("a=%s"%a)
b = BeautifulSoup(html2, "lxml").find('li').stripped_strings
print("b=%s"%list(b)[1])
输出结果
可以看到,这两种方法都不满足要求!
有知道的大神么,请告知小弟一下,感激不尽!!!