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


소스코드

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만 추출하고 싶습니다.

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

  • 2016년 02월 15일에 작성됨

조회수 458


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))
  • 2016년 02월 15일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close