【发布时间】:2014-02-22 23:17:45
【问题描述】:
我正在尝试使用 python 下载网页并访问页面上的一些元素。下载页面时遇到问题:内容是垃圾。这是页面的第一行:
‹í}évÛH²æïòSd±ÏmÉ·’¸–%ÕhµÕ%ÙjI¶«JããIÐ(‰îî{æ1æ÷¼Æ¼Í}’ù"à""’‚d÷t»N‰$–\"ãˈŒˆŒÜøqïíîùï'û¬¼gôÁnžm–úq<ü¹R¹¾¾._›å ìUôv»]¹¡gJÌqÃÍ’‡%z‹[ÎÖ3†[(,jüËȽÚ,í~ÌýX;y‰Ùò×f)æ7q…JzÉì¾F<ÞÅ]Uª
此问题仅在以下网站上发生:http://kickass.to。他们是否有可能以某种方式保护了他们的页面?这是我的python代码:
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)
结果:
text/html; charset=UTF-8
{'confidence': 0.0, 'encoding': None}
看起来像是编码问题,但 chardet 检测到“无”。有什么想法吗?
【问题讨论】:
-
您可以在浏览器中访问网址吗?我不了解您,但我的 ISP 阻止了该站点。也许与此有关?
-
@AlexThornton:是的,我可以通过浏览器访问它。
-
哇,我对 python 2 的经验很少,但也许为了尝试而尝试
urllib而不是urllib2? -
您可能会注意到
wget获取相同的“垃圾”(实际上是正常的,但经过压缩的)内容。