Python프로그래밍

[Python] 파이썬 html 태그 치환(replace) 또는 제거 방법 : replace_with()

html 태그는 replace() 함수로 변환 시도하면 오류가 발생한다. replace()대신 사용하는 함수에 대해 알아보자

파이썬 sub() 메서드

대체하다 substitute의 줄임말이다. sub()함수를 사용하려면 re 라이브러리를 import 후 사용할 수 있다.

import re

# 원본 HTML 코드
html_text = '<dd><a href="/test/ddd/go/self/"></a></dd>'

# <dd>를 '-_'로 치환
modified_text = re.sub(r'<dd>', '-_', html_text)

# </dd>를 제거
modified_text = re.sub(r'</dd>', '', modified_text)

# 결과 출력
print(modified_text)

하지만 위 코드 역시 오류가 발생한다.

아래 코드처럼 BeautifulSoup메소드를 이용하여 ‘dd’ 라는 태그를 찾은 후 replace_with()메서드를 이용하여 치환할 수 있다.

from bs4 import BeautifulSoup

# 원본 HTML 코드
html_text = '<dd><a href="/test/ddd/go/self/"></a></dd>'

# BeautifulSoup 객체 생성
soup = BeautifulSoup(html_text, 'html.parser')

# <dd> 태그를 찾아서 치환
for dd in soup.find_all('dd'):
    dd.replace_with('-_' + dd.get_text())

# 결과 출력
print(soup.prettify())
error: Content is protected !!