Как удалить из строки все HTML-теги, кроме определенных разрешенных?

  • 1 сентября 2023 г. 11:36
Ответы на вопрос 1
Если вы ищете решение на языке Python, вы можете использовать модуль BeautifulSoup для парсинга HTML и удаления ненужных тегов. Вот пример кода:

```python
from bs4 import BeautifulSoup

def clean_html_tags(html, whitelist):
    soup = BeautifulSoup(html, 'html.parser')
    for tag in soup.findAll(True):
        if tag.name not in whitelist:
            tag.extract()
    return str(soup)

html = '<p>This is a <b>sample</b> <i>HTML</i> text with <a href="example.com">tags</a>.</p>'
whitelist = ['a', 'b', 'p']

cleaned_html = clean_html_tags(html, whitelist)
print(cleaned_html)
```

В этом примере мы определяем функцию `clean_html_tags`, которая принимает HTML-строку и список разрешенных тегов. Затем мы парсим HTML с помощью BeautifulSoup и перебираем все теги. Если имя тега не находится в списке разрешенных, мы его удаляем с помощью метода `extract()`. Наконец, мы возвращаем очищенный HTML в виде строки.

Приведенный выше пример выведет следующий результат:

```html
<p>This is a <b>sample</b> HTML text with tags.</p>
```

Тег `<i>` был удален, так как он не содержится в списке разрешенных тегов. Теги `<a>` и `<p>` остались в HTML-строке.
Похожие вопросы