我试图隔离感兴趣的文本"以下序列中最后一段的文字:
<div class='div_name_class'>
<p>
<span class='class_name_1' title='title1'>val1</span>
<span class='class_name_1' title='title2'>val2</span>
</p>
<p><span class='class_name_2'><em>text of no interest</em></span>text of interest</p>
我到目前为止尝试过:
print soup.find('span', attrs={'class': 'class_name_2'}).parent.text
print soup.find('em').parent.parent.text
但两者都返回:&#34;没有兴趣的文本和#34;
我知道&#34;感兴趣的文字&#34;可以与上述结果分开,但它看起来不是一个优雅的解决方案。
感谢您的建议。
答案 0 :(得分:2)
您可以使用extract
删除em
标记,如下所示:
from bs4 import BeautifulSoup
html = """<div class='div_name_class'>
<p>
<span class='class_name_1' title='title1'>val1</span>
<span class='class_name_1' title='title2'>val2</span>
</p>
<p><span class='class_name_2'><em>text of no interest</em></span>text of interest</p>"""
soup = BeautifulSoup(html)
p = soup.find('span', attrs={'class': 'class_name_2'}).parent
p.span.em.extract()
print p.text
这会显示:
text of interest