我正在尝试用漂亮的汤抓取文本,我需要从具有特定类的跨度内获取文本,但丢弃具有不同类的同一跨度内的上标数字。我可以很容易地使用 get_text 从跨度中提取数字和内容,但我最终也得到了上标数字。该解决方案需要能够丢弃 sup 标签的每个实例及其文本内容。
示例 HTML:
<span class="woj">
<sup class="versenum">
16
</sup>
The text I want
</span>
我现在得到的:16个我想要的文字
我想要的:我想要的文字
您可以使用
.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
你可以使用这个逻辑:
foreach(var sup in node.SelectNodes("//sup")) {
sup.Remove();
}