[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 공식 문서