Answers
你需要在抓取时设置
Accept-Encoding
这个头才会被压缩。
在浏览器中
Accept-Encoding:gzip, deflate, sdch
在告诉网站浏览器支持
gzip
,
deflate
,
sdch
这三种压缩方式。也就是说这不代表网站支持的压缩方式,而是代表浏览器支持的压缩方式。
网站会选择其中一种支持的压缩方式返回,压缩方式为
Content-Encoding
的值。浏览器会根据这个值来选择对应的解压方式。
糗百支持
gzip
,但是如果不设置
Accept-Encoding
则不会进行压缩。
python3
#!/usr/bin/env python3 from urllib import request USER_AGENT = r'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36' req = request.Request(r'http://www.qiushibaike.com/', headers={'User-Agent': USER_AGENT, 'Accept-Encoding': 'gzip'}) res = request.urlopen(req) print(res.info().get('Content-Encoding'))
上面的脚本输出为
gzip
evan7
answered 9 years, 7 months ago