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

У меня есть такой текст:

<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 для этого?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

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

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

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

0 голосов
/ 16 октября 2018

Да, вы можете.

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

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