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

时间:2015-02-03 06:38:43

标签: python web-scraping beautifulsoup

搜索了一下,但无法找到符合我问题的帖子 说我有这个HTML:

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

我有没有办法获得内容&#34;?
doc.find(id="a").string返回无 doc.find(id="a").text返回&#34;垃圾内容&#34;

1 个答案:

答案 0 :(得分:2)

有多种方式:

  • 找到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")