Похоже, что рассматриваемый элемент имеет следующий формат:
<font size="1" style="font-size:6.5pt;font-weight:bold;position:relative;top:-3.0pt;">1</font>
Итак, мы видим здесь, что они форматируют текст шрифтом, важными частями которого являются значения стиля position:relative
и top:
. Я бы лично написал функцию, которая может быть расширена, которая обнаруживает надстрочные индексы и удаляет их. Например:
def Remove_Superscripts(soup):
# Simple superscript extraction
for element in soup.find_all('sup'):
element.extract()
# More complex superscript extraction for this example:
for element in soup.find_all(lambda e: e and e.name == 'font' and e.has_attr('style') and
'position:relative' in e['style'] and
'top:' in e['style']:
element.extract()
Это очень ленивый и грязный пример, но он должен дать вам представление о том, как вы можете удалить надстрочные теги, которые не отмечены тегом <sup\>
. К сожалению, вам нужно будет расширять и модифицировать этот метод (я буду работать над тем, чтобы сделать его максимально открытым и универсальным) каждый раз, когда вы сталкиваетесь с новым случаем, когда кто-то по-другому строит верхний индекс.