python-3.x 从< sup>范围中删除标记中的文本,同时擦除其余文本

ltskdhd1  于 2023-05-23  发布在  Python
关注(0)|答案(2)|浏览(131)

我试图用漂亮的汤刮文本,我需要从一个特定类的span中获取文本,但在同一个span中丢弃不同类的上标数字。我可以很容易地使用get_text从span中提取数字和内容,但最终也会得到上标数字。解决方案需要能够丢弃sup标记的每个示例及其文本内容。
示例HTML:

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

我现在得到的是:16我想要的文字
我想要的:我要的短信

bxjv4tth

bxjv4tth1#

可以使用.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
t0ybt7op

t0ybt7op2#

你可以使用这个逻辑:

foreach(var sup in node.SelectNodes("//sup")) {
   sup.Remove();
}

相关问题