[python] 응답에 대한 압축 내용 확인하기
일반적으로 웹 서버는 압축된 응답을 제공하여 대역폭을 절약하고 응답 속도를 향상시킵니다. 이러한 압축은 주로 gzip
또는 deflate
알고리즘을 사용하여 이루어집니다.
Python에는 requests
라이브러리를 사용하여 웹 요청을 보낼 수 있으며, requests
는 자동으로 압축된 응답을 처리할 수 있습니다. 응답의 압축 내용을 확인하기 위해서는 requests
라이브러리의 content
속성을 사용할 수 있습니다.
아래의 예제 코드를 참고하여 압축된 응답의 내용을 확인해 보세요.
import requests
import gzip
from io import BytesIO
url = "https://example.com" # 압축된 응답을 확인할 URL 입력
response = requests.get(url) # GET 요청 보내기
if response.headers.get("Content-Encoding") == "gzip": # 응답이 압축되었는지 확인
compressed_data = BytesIO(response.content) # 압축된 데이터를 BytesIO 객체로 변환
decompressed_data = gzip.GzipFile(fileobj=compressed_data) # 압축 해제
content = decompressed_data.read().decode("utf-8") # 해제된 내용을 문자열로 디코딩
else:
content = response.text # 압축이 안된 경우 바로 내용을 가져옴
print(content) # 압축 해제 또는 압축 없이 가져온 응답의 내용 출력
위 코드에서는 먼저 requests.get()
함수를 사용하여 웹 페이지에 GET 요청을 보냅니다. 그런 다음 response.headers.get("Content-Encoding")
을 사용하여 응답이 압축되었는지 확인합니다.
응답이 압축되었는지 확인한 후, BytesIO
를 사용하여 압축된 데이터를 gzip.GzipFile
로 변환하여 압축을 해제합니다. 마지막으로 압축 해제된 데이터를 decode()
함수를 사용하여 문자열로 디코딩합니다.
만약 응답이 압축되지 않았다면, response.text
속성을 사용하여 응답의 내용을 가져옵니다.
위 코드를 실행하면 압축 해제된 응답의 내용이 출력될 것입니다.
참고 자료:
requests
라이브러리 문서: https://docs.python-requests.org/en/latest/gzip
모듈 문서: https://docs.python.org/3/library/gzip.htmlio
모듈 문서: https://docs.python.org/3/library/io.html