Beautifulsoup верхний индекс не "sup" - PullRequest
0 голосов
/ 04 июля 2018

Я могу удалить верхний индекс со следующей страницы:

https://www.sec.gov/Archives/edgar/data/1633917/000163391718000094/exhibit991prq12018pypl.htm

с этим постом здесь: Красивый суп удалить верхний индекс

но теперь у меня есть верхний индекс, который не помечен sup

https://www.sec.gov/Archives/edgar/data/1549802/000110465918031489/a18-13128_1ex99d1.htm

Позади Net revenues - верхний индекс 1, у которого нет тега sup.

Как мне удалить этот верхний индекс из текста, как в посте здесь: Красивый суп удалить верхний индекс ?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Похоже, что рассматриваемый элемент имеет следующий формат:

<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\>. К сожалению, вам нужно будет расширять и модифицировать этот метод (я буду работать над тем, чтобы сделать его максимально открытым и универсальным) каждый раз, когда вы сталкиваетесь с новым случаем, когда кто-то по-другому строит верхний индекс.

0 голосов
/ 04 июля 2018

как то так:

fonts = soup.select('font[style*="position:relative"]')
for font in fonts:
    font.decompose()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...