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

标签 python web-scraping beautifulsoup

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

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

有没有办法让我获得“内容”?
doc.find(id="a").string 返回 None
doc.find(id="a").text 返回“垃圾内容”

最佳答案

有多种方法:

  • 查找所有带有 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")

关于python - 使用 BeautifulSoup 获取在其值之前有另一个标签的标签的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28292830/

相关文章:

python - (python) 使用 beautiful soup 解析某些 HTML 输出标签

python - BeautifulSoup(html) 不工作,说不能调用模块?

python-3.x - 如何从网络上抓取某一类属性的所有子级?

python - Py2exe : the exe is created but if you run it you get a Runtime error R6034

java - Webharvest Scraper 类中的 exitExecution() 和 stopExecution() 有什么区别

javascript - 使用 Javascript 从脚本标签中抓取信息

ios - 如何以编程方式填写网络表单以获取过去的身份验证页面? (在 iOS 中)

python - 通过 wsadmin 获取 WAS 7 上已安装应用程序的上下文根

python - Heroku 权限错误 : [Errno 13] Permission denied

python - 相当于在 Tensorflow 中设置类似 Numpy 的掩码值?