【发布时间】:2010-08-28 00:54:13
【问题描述】:
以下网址(以及其他类似网址)可以在浏览器中打开,但会导致 urllib2.urlopen 抛出 404 异常:http://store.ovi.com/#/applications?categoryId=20&fragment=1&page=1
geturl() 返回相同的 url(无重定向)。标题是从 firebug 复制和粘贴的。我尝试将标题作为字典传递给请求,但得到了相同的结果。 wget 在控制台中打开 url,但不是从脚本中打开。
代码:
source_url = 'http://store.ovi.com/#/applications?categoryId=20&fragment=1&page=2'
试试:
socket.setdefaulttimeout(10)
hdrs = [('Host','store.ovi.com'),('User-Agent','Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US;rv:1.9.0.13) Gecko/2009073021 Firefox/3.0.13 AppEngine-Google;(+http://code.google.com/appengine)'),('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),('Accept-Language','en-us,en;q=0.5'),('Accept-Encoding','gzip,deflate'),('Accept-Charset','ISO-8859-1,utf-8;q=0.7,*;q=0.7'),('Keep-Alive','115'),('Connection','keep-alive'),('Cookie','JNPRSESSID=4u4devdrt7eb6e0qem3gin47i2; s_cc=true; undefined_s=First%20Visit; s_nr=1282817443274; s_sq=%5B%5BB%5D%5D; view=Grid; menu=menuOpen; OVI_DEVICE=b5130'),('Cache-Control','max-age=0')]
ree = urllib2.Request(source_url)
ree.addheaders = hdrs
opener = urllib2.build_opener()
htmlSource = opener.open(ree).read()
除了urllib2.HTTPError,e:
print e.code
print e.msg
print e.headers
错误输出:
404
未找到
日期:2010 年 8 月 28 日星期六 00:36:57 GMT
服务器:Apache/2.2.3(红帽)
X-Powered-By:PHP/5.2.2
过期:1981 年 11 月 19 日星期四 08:52:00 GMT
缓存控制:无存储、无缓存、必须重新验证、后检查=0、预检查=0
编译指示:无缓存
保持活动状态:超时=7,最大值=333
连接:保持活动
传输编码:分块
内容类型:文本/html;字符集=UTF-8
如果有的话,我做错了什么?这是一个错误吗?如果是这样,是否有解决方法?谢谢!
【问题讨论】:
-
网址中的片段似乎搞砸了
标签: python http exception debugging urllib2