스택큐힙리스트

파이썬 문자열에서 HTML 엔티티를 디코딩하십니까? 본문

카테고리 없음

파이썬 문자열에서 HTML 엔티티를 디코딩하십니까?

스택큐힙리스트 2023. 4. 20. 17:24
반응형

저는 Beautiful Soup 3로 HTML을 파싱하고 있습니다. 하지만 그 안에는 Beautiful Soup 3가 자동으로 디코딩하지 않는 HTML 엔티티가 포함되어 있습니다.

>>> from BeautifulSoup import BeautifulSoup

>>> soup = BeautifulSoup(

£682m

)

>>> text = soup.find(p).string

>>> print text

£682m

text을(를) £682m 대신에 어떻게 HTML 엔티티를 디코딩할 수 있나요?

답변 1

파이썬 3.4+

html.unescape()을 사용하세요.

import html

print(html.unescape('£682m'))

참고 : html.parser.HTMLParser.unescape은 더 이상 권장되지 않으며, 실수로 남겨진 was supposed to be removed in 3.5은 곧 언어에서 제거될 예정입니다.

파이썬 2.6-3.3

표준 라이브러리에서 HTMLParser.unescape() 을 사용할 수 있습니다.

파이썬 2.6-2.7의 경우 HTMLParser에 있습니다.

파이썬 3에서는 html.parser에 있습니다.

>>> try:

... # Python 2.6-2.7

... from HTMLParser import HTMLParser

... except ImportError:

... # Python 3

... from html.parser import HTMLParser

...

>>> h = HTMLParser()

>>> print(h.unescape('£682m'))

£682m

당신은 또한 six 호환 라이브러리를 사용하여 가져오기를 간편하게 할 수 있습니다.

>>> from six.moves.html_parser import HTMLParser

>>> h = HTMLParser()

>>> print(h.unescape('£682m'))

£682m

답변 2

HTML 엔티티 해독은 웹 개발에서 매우 중요한 기술입니다. 이 기술은 특수 문자 및 기호를 웹에서 표시 가능한 형식으로 변환하는 데 사용됩니다. 예를 들어, HTML에서 <기호는 < 로 표시됩니다. 이러한 엔티티는 웹 브라우저에서 표시되지 않습니다. 대신, 원래 의미의 문자나 기호를 표시합니다.

파이썬은 이러한 HTML 엔티티를 쉽게 해독할 수 있는 방법을 제공합니다. 이는 매우 유용한 기능으로써, 웹 서버에서 전송된 문자열을 처리하거나 데이터베이스와 상호 작용할 때 자주 사용됩니다.

HTML 엔티티를 해독하는 방법은 간단합니다. 파이썬 내장 모듈인 html을 사용하여 소스 코드에서 모든 HTML 엔티티를 삭제할 수 있습니다. 이를 위해 html.unescape() 함수를 사용하면 됩니다.

디코딩 단계에서 주의할 점은 문자열 내에서 엔티티를 올바르게 검사하여 처리해야 합니다. 예를 들어, & 및 ; 문자 사이에 문자열이 없는 경우 이 문자열 내에 해당 엔티티가 없다는 뜻이며, 이 경우에는 그대로 둘 수 있습니다.

정리하자면, HTML 엔티티를 디코딩하는 것은 웹 개발에서 매우 중요한 기술이며, 파이썬에서 내장된 html 모듈을 사용하여 쉽게 처리할 수 있습니다. 이를 통해 웹 애플리케이션에서 문자열을 다룰 때 유용하게 사용할 수 있습니다.

반응형
Comments