>백엔드 개발 >파이썬 튜토리얼 >Python의 문자열에서 HTML 태그를 효율적으로 제거하려면 어떻게 해야 합니까?

Python의 문자열에서 HTML 태그를 효율적으로 제거하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-06 22:47:11300검색

How Can I Efficiently Remove HTML Tags from Strings in Python?

Python의 문자열에서 HTML 태그 제거

Python에는 문자열에서 HTML 태그를 제거해야 하는 다양한 시나리오가 있습니다. 그 내용을 추출합니다. 이 문제에 대한 해결책을 살펴보겠습니다.

예제 스니펫에 표시된 것처럼 mechanize 라이브러리를 사용하여 HTML 콘텐츠를 검색한다고 가정해 보겠습니다. 콘텐츠의 각 줄에는 HTML 태그와 텍스트가 포함되어 있습니다. 텍스트만 추출하려면 태그를 제거해야 합니다.

한 가지 옵션은 사용자 정의 기능을 사용하여 이 작업을 수행하는 것입니다. Strip_tags 함수는 HTMLParser 클래스를 활용하여 HTML 콘텐츠를 처리하는 파서를 생성합니다. 파서는 태그 내의 데이터만 추출하여 StringIO 객체에 축적합니다.

다음은 Python 3용 코드 조각입니다.

from io import StringIO
from html.parser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        super().__init__()
        self.reset()
        self.strict = False
        self.convert_charrefs= True
        self.text = StringIO()
    def handle_data(self, d):
        self.text.write(d)
    def get_data(self):
        return self.text.getvalue()

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

Python 2의 경우 다음 코드를 사용하세요.

from HTMLParser import HTMLParser
from StringIO import StringIO

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.text = StringIO()
    def handle_data(self, d):
        self.text.write(d)
    def get_data(self):
        return self.text.getvalue()

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

HTML 콘텐츠를 이 함수에 전달하면 태그를 효과적으로 제거하고 텍스트만 유지할 수 있습니다. 내용입니다.

위 내용은 Python의 문자열에서 HTML 태그를 효율적으로 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.