[python] Requests 라이브러리를 이용해 인코딩 처리하는 방법은?

인코딩 처리를 위해서는 response 객체의 content 속성을 사용하여 웹 페이지의 바이트 데이터를 가져옵니다. 그런 다음 response 객체의 encoding 속성을 통해 현재 인코딩을 확인합니다.

import requests

response = requests.get('https://www.example.com')
data = response.content
encoding = response.encoding

만약 encoding 속성이 None으로 설정되어 있다면, Requests 라이브러리는 내부적으로 chardet 라이브러리를 사용하여 인코딩을 추측합니다. 따라서, response.content에 올바른 인코딩이 적용되지 않은 경우에도 response.encoding을 사용할 수 있습니다.

이제 data를 원하는 인코딩으로 디코드하여 텍스트로 변경할 수 있습니다. response 객체의 text 속성을 사용하면 됩니다.

text = data.decode(encoding)

또 다른 방법은 response 객체의 text 속성을 사용하는 것입니다. Requests 라이브러리는 내부적으로 response.content 데이터를 올바른 인코딩으로 자동 변환한 후 response.text에 저장합니다.

text = response.text

이러한 방법으로 Requests 라이브러리를 사용하여 웹 페이지의 인코딩을 처리할 수 있습니다. 페이지의 인코딩이 잘못되었을 때도 올바른 방식으로 텍스트를 디코드할 수 있습니다.

참고: Requests 공식 문서