python urllib2 returns garbage
我正在尝试使用python下载一个网页并访问页面上的一些元素。 我下载页面时遇到问题:内容是垃圾。 这是页面的第一行:
1 | ?í}év?H2??òSd±?mé·f’?–%?hμ?%ùjI??J??ID(‰??{?1?÷???í}’ù"u0013à""’?d÷t?N‰$–"??????ü?q?í?ù?'??u000F?-g?án?m–úq<ü1R1??._?? ìU?v?]1?gJìq?í’?%z?[??3?[(,jü?è?ú,í~ìyX;u000Fy‰ùò×f)?7q…Jzéì?F<T?]-Ua |
这个问题只发生在以下网站:http://kickass.to。 是否有可能他们以某种方式保护他们的页面? 这是我的python代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import urllib2 import chardet url = 'http://kickass.to/' user_agent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KH TML, like Gecko) Chrome/6.0.472.63 Safari/534.3' headers = { 'User-Agent' : user_agent } req = urllib2.Request(url, None, headers) response = urllib2.urlopen(req) page = response.read() f = open('page.html','w') f.write(page) f.close() print response.headers['content-type'] print chardet.detect(page) |
结果:
1 2 | text/html; charset=UTF-8 {'confidence': 0.0, 'encoding': None} |
它看起来像编码问题,但chardet检测到'无'..任何想法?
此页面以
(尝试打印
很可能该网站不尊重请求中的"Accept-Encoding"字段,并建议客户端支持gzip(大多数现代浏览器都支持)。