프로그래밍/Python

[python] requests - 응답을 UTF-8로 지정하여 받는 방법

채윤아빠 2025. 6. 13. 11:18

requests 기본 사용법

파이썬 requests 패키지로 웹 페이지의 HTML 소스를 가져올 때, 기본적으로 .text 속성을 사용하면 HTML 소스가 문자열로 반환됩니다. 이때, requests는 응답의 헤더에서 인코딩 정보를 자동으로 감지해 해당 인코딩으로 디코딩합니다.

import requests

url = "https://www.wikipedia.org/"
response = requests.get(url)
html = response.text  # 자동 인코딩 감지 및 디코딩
print(html)

UTF-8로 강제 인코딩 지정

간혹 서버가 인코딩 정보를 잘못 제공하거나, 한글 등 특수문자가 깨지는 경우가 있습니다. 이럴 때는 .encoding 속성을 직접 'utf-8'로 지정해줄 수 있습니다.

import requests

url = "http://lovflag.tistory.com"
response = requests.get(url)
response.encoding = 'utf-8'  # 인코딩 강제 지정
html = response.text
print(html)
  • .encoding 속성으로 현재 인코딩 방식을 확인할 수 있습니다.
  • .encoding = 'utf-8'로 지정하면, 이후 .text는 UTF-8로 디코딩된 문자열을 반환합니다.

맺는말

기본적으로 .text는 서버가 지정한 문자셋을 감지하여 자동으로 디코딩됩니다. 한글 등 문자 깨짐이 있을 땐 .encoding = 'utf-8'로 직접 지정 후 .text를 이용하면 됩니다.
이와 같은 방법으로 requests 패키지를 활용해 HTML 소스를 안정적으로 UTF-8로 처리할 수 있습니다.



728x90
반응형