У меня есть текст:
<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 для этого?
Вы можете использовать функцию find_all:
soup.find_all(['h1', 'p'])
чтобы получить список необходимых вам тегов, вместо того чтобы найти все теги, которые вам не нужны.
Да, ты можешь.
Вы можете использовать .find_all([])
чтобы найти все теги, которые вам не .unwrap()
, а затем вызвать .unwrap()
чтобы избавиться от них, сохраняя содержимое.