使用 BeautifulSoup 获取在其值之前具有另一个标签的标签的值

Get the value of a tag which has another tag before its value with BeautifulSoup

四处搜索了一下,但找不到任何符合我的问题的post。
假设我有这个 html:

<div id=a>
    <span>junk</span>
    content
</div>

我有办法得到"content"吗?
doc.find(id="a").string returns None
doc.find(id="a").text return "junk content"

有多种方式:

  • 找到所有带有recursive=False的文本节点并得到最后一个:

    div.find_all(text=True, recursive=False)[-1]
    
  • 获取 span 的元素 next sibling:

    div.span.next_sibling.strip()
    
  • 获取 .contents 的最后一个元素:

    div.contents[-1].strip()
    

其中 div = doc.find(id="a").