[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 속성을 사용하여 응답의 내용을 가져옵니다.

위 코드를 실행하면 압축 해제된 응답의 내용이 출력될 것입니다.

참고 자료: