Функция BeautifulSoup find_all
возвращает список всех отдельных дискретных HTML-элементов на входе (find_all
- это правильная функция для использования в BeautifulSoup 4 и предпочтительнее, чем findAll
). Следующая функция, filter
, проходит через этот список и удаляет элементы, для которых ее подпрограмма обратного вызова возвращает False
. Функция обратного вызова проверяет имя тега каждого фрагмента и возвращает False
, если он находится в нежелательном списке, в противном случае True
.
Если эти верхние индексы всегда обозначаются соответствующим HTML-тегом sup
, вы можете добавить их в список ненужных в функции обратного вызова.
Возможные подводные камни:
- Предполагается, что используется буквенный (семантически правильный) тег
sup
, а не, например, класс или диапазон, который просто указывает vertical-align: superscript;
в его CSS;
- Предполагается, что вы хотите избавиться от всех элементов, находящихся в этом надстрочном теге. Если есть исключения («20 th век»), вы можете проверить содержание текста; например, только удалить, если все его содержимое является числовым. Если есть исключения из , которые ("a 2 = b 2 + c 2 "), вам необходимо проверить наличие более широкий контекст, или создайте белый или черный список включений / исключений.