以下網址(和其他類似的),可以在瀏覽器中打開,導致urllib2.urlopen拋出404異常:http://store.ovi.com/#/applications?categoryId=20&fragment=1&page=1urllib2.urlopen拋出404例外網址的瀏覽器打開
的getURL()返回相同的網址(不重定向)。頭文件被複制並從螢火蟲粘貼。我嘗試將頭文件作爲字典傳遞給Request,但得到了相同的結果。 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
誤差輸出:
未找到
日期:星期六,2010年8月28日0點36分57秒GMT
服務器:Apache/2.2.3(紅帽)
X供電-者:PHP/5.2.2
過期:星期四,1981年11月19日08:52:00 GMT
緩存控制:無存儲,無緩存,必須重新驗證,後檢查= 0,預檢查= 0
pragma:no-cache
Keep-Alive:timeout = 7,max = 333
連接:Keep-Alive
傳輸編碼:分塊
Content-Type:text/html; charset = UTF-8
什麼,如果有的話,我做錯了嗎?這是一個錯誤?如果是這樣,是否有解決方法?謝謝!
在URL中的片段似乎搞亂事情 – aaronasterling 2010-08-28 01:15:52