从 span 中删除 <sup> 标签中的文本,同时抓取其余文本

问题描述 投票:0回答:2

我正在尝试用漂亮的汤抓取文本,我需要从具有特定类的跨度内获取文本,但丢弃具有不同类的同一跨度内的上标数字。我可以很容易地使用 get_text 从跨度中提取数字和内容,但我最终也得到了上标数字。该解决方案需要能够丢弃 sup 标签的每个实例及其文本内容。

示例 HTML:

<span class="woj">
 <sup class="versenum">
  16
 </sup>
  The text I want
</span>

我现在得到的:16个我想要的文字

我想要的:我想要的文字

html python-3.x web-scraping beautifulsoup
2个回答
1
投票

您可以使用

.sup.extract()

提取所有sup标签
html = '<span class="woj"><sup class="versenum">16</sup>The text I want</span>'

parsed_element = bs.BeautifulSoup(html, 'html.parser')
[s.extract() for s in parsed_element('sup')]
text = parsed_element.text

0
投票

你可以使用这个逻辑:

foreach(var sup in node.SelectNodes("//sup")) {
   sup.Remove();
}
© www.soinside.com 2019 - 2024. All rights reserved.