Вы можете удалить тег head
из текста HTML, используя Beautiful Soup в Python, используя функцию decompose()
.Попробуйте этот код Python,
from bs4 import BeautifulSoup
my_string = '''
<html>
<head>
<p>
this is a paragraph tag
</p>
</head>
<meta>
<p>
this is a different paragraph tag
</p>
</meta>
</html>
'''
soup = BeautifulSoup(my_string)
soup.find('head').decompose() # find head tag and decompose/destroy it from the html
print(soup) # prints html text without head tag
Prints,
<html>
<meta/>
<p>
this is a different paragraph tag
</p>
</html>
Кроме того, хотя метод регулярных выражений не рекомендуется, но если тег, который вы хотите удалить, не является вложенным, вы можете удалитьэто с помощью регулярного выражения, которое вы упомянули в ваших комментариях, используя эти коды Python.Но всегда избегайте использования регулярных выражений для синтаксического анализа вложенных структур и используйте правильный синтаксический анализатор.
import re
my_string = '''
<html>
<head>
<p>
this is a paragraph tag
</p>
</head>
<meta>
<p>
this is a different paragraph tag
</p>
</meta>
</html>
'''
print(re.sub(r'(?s)<head>.*?</head>', '', my_string))
Печатает после и замечает использование (?s)
, которое необходимо для включения новой строки, совмещающей точки, когда ваш html распространяется по несколькимлинии,
<html>
<meta>
<p>
this is a different paragraph tag
</p>
</meta>
</html>