HTML태그 "<>" 를 다 지워버리고 내용만 남기려고 합니다.

조회수 4581회

소스코드

from html.parser import HTMLParser
br = urllib.request.urlopen('http://www.google.com')
html = str(br.read())
print(html)

같은 소스에서 그냥 html을 바로 출력하는 게 아니라

<a class=gb1 href="http://www.youtube.com/?gl=KR&tab=w1">YouTube</a>에서 태그랑 요소를 제거한 YouTube만 추출하고 싶습니다.

전체 태그랑 요소를 제거하려면 어떻게 해야될까요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    HTML을 strip하는 건 파이선 버전에 따라 조금씩 다릅니다.

    Python 2

    from HTMLParser import HTMLParser
    
    class MLStripper(HTMLParser):
        def __init__(self):
            self.reset()
            self.fed = []
        def handle_data(self, d):
            self.fed.append(d)
        def get_data(self):
            return ''.join(self.fed)
    
    def strip_tags(html):
        s = MLStripper()
        s.feed(html)
        return s.get_data()
    

    Python 3

    from html.parser import HTMLParser
    
    class MLStripper(HTMLParser):
        def __init__(self):
            self.reset()
            self.strict = False
            self.convert_charrefs= True
            self.fed = []
        def handle_data(self, d):
            self.fed.append(d)
        def get_data(self):
            return ''.join(self.fed)
    
    def strip_tags(html):
        s = MLStripper()
        s.feed(html)
        return s.get_data()
    

    사용법

    
    from html.parser import HTMLParser
    import urllib.request
    
    #여기에 버전에 알맞은 함수 코드
    
    br = urllib.request.urlopen('http://www.google.com')
    html = br.read()
    print(strip_tags(html))
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)