使用css选择器从元素中获取文本,不包括嵌套元素内的文本
Posted
技术标签:
【中文标题】使用css选择器从元素中获取文本,不包括嵌套元素内的文本【英文标题】:get text from element using css selector excluding text inside nested element 【发布时间】:2021-06-03 07:28:54 【问题描述】:我需要使用 css 选择器从 span 中获取文本,但不包括 sup 中的文本:
<span>(6-4, 7-6<sup>4</sup>)</span>
我试过这个 css 选择器但没有用:
span :not(sup)
# soup.select_one('span :not(sup)').text
我需要的结果是这样的: "(6-4, 7-6)"
【问题讨论】:
【参考方案1】:试试这个,只获取父元素的文本,排除所有子元素的文本。
span_element = soup.find('span')
span_text = span_element.find(text=True, recursive=False)
输出:
6-4, 7-6
【讨论】:
【参考方案2】:使用 BeautifulSoup,您可以使用find_next()
方法:
print(soup.select_one('span').find_next(text=True))
【讨论】:
以上是关于使用css选择器从元素中获取文本,不包括嵌套元素内的文本的主要内容,如果未能解决你的问题,请参考以下文章