본문 바로가기
파이썬

파이썬 python urllib2는 웹 페이지에서 가져온 gzip 데이터를 자동으로 압축 해제합니까?

by º기록 2020. 10. 30.
반응형

나는 사용하고있다

 data=urllib2.urlopen(url).read()

나는 알고 싶다:

URL의 데이터가 gzip으로 압축되었는지 어떻게 알 수 있습니까?

urllib2는 데이터가 gzip으로 압축되면 자동으로 압축을 풉니까? 데이터는 항상 문자열입니까?

 

해결 방법

 

  1. URL의 데이터가 gzip으로 압축되었는지 어떻게 알 수 있나요?

콘텐츠가 gzip으로 압축되었는지 확인하고 압축을 풉니 다.

from StringIO import StringIO
import gzip

request = urllib2.Request('http://example.com/')
request.add_header('Accept-encoding', 'gzip')
response = urllib2.urlopen(request)
if response.info().get('Content-Encoding') == 'gzip':
    buf = StringIO(response.read())
    f = gzip.GzipFile(fileobj=buf)
    data = f.read()
  1. urllib2는 데이터가 gzip으로 압축 된 경우 자동으로 압축을 해제합니까? 데이터는 항상 문자열입니까?

아니요. 'Accept-Encoding'헤더가 urllib2에 의해 설정되지 않고 다음을 사용하기 때문에 urllib2는 데이터의 압축을 자동으로 풀지 않습니다. request.add_header ( 'Accept-Encoding', 'gzip, deflate') < / 코드>

 

참조 페이지 https://stackoverflow.com/questions/3947120

 

 

반응형

댓글