我有一个带有如下代码的span元素,我怎样才能提取文本只存在于anchor(a)标记之外:
# print soup.prettify()
<span class="1">
text_wanted
<a data-toggle="notify" href="https://www.abc.com/1" class="class1"><span>text1</span></a>
<a data-toggle="notify" href="https://www.abc.com/2" class="class2"><span>text2</span></a>
</span>
我正在考虑以下解决方案:
text_all = soup.text.encode('utf-8')
text_strip_list = [a.text.encode('utf-8').strip() for a in soup.find_all('a')]
for text_strip in text_strip_list:
text_all = text_all.replace(text_strip, '').strip()
我想知道是否有一种简单的方法可以获得所需的文本,而不是潜入锚标签..
提前致谢...
答案 0 :(得分:1)
假设html
是带有解析HTML的BeautifulSoup对象,
from BeautifulSoup import NavigableString
print [node for node in html.find('span').contents if type(node) is NavigableString]
将生成最外层span
内的文本节点。