Python-код для хранения только набора тегов html во входной строке

1

У меня есть текст:

<div>
  <script></script>
  <h1>name</h1>
  <p> Description </p>
  <i> italic </i>
</div>

Я хочу удалить все теги html, кроме h тегов и p-тегов. Для этого я пытаюсь сделать более общий метод следующим образом:

def strip_tags(text, a_list_of_tags_to_not_remove)

Используя следующий код Beautiful Soup, я могу удалить все теги html, но он не позволяет сохранять список тегов и удалять другие.

from bs4 import BeautifulSoup  
cleantext = BeautifulSoup(raw_html).text

Могу ли я сделать это с помощью Beautiful Soup или есть ли другая библиотека python для этого?

Теги:
beautifulsoup

2 ответа

2

Вы можете использовать функцию find_all:

soup.find_all(['h1', 'p'])

чтобы получить список необходимых вам тегов, вместо того чтобы найти все теги, которые вам не нужны.

1

Да, ты можешь.

Вы можете использовать .find_all([]) чтобы найти все теги, которые вам не .unwrap(), а затем вызвать .unwrap() чтобы избавиться от них, сохраняя содержимое.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню