2010-03-24 2 views
1

J'ai besoin de télécharger un fichier CSV, qui fonctionne très bien dans les navigateurs utilisant:python urllib2.openurl ne fonctionne pas avec une URL spécifique (redirection)?

http://www.ftse.com/objects/csv_to_csv.jsp?infoCode=100a&theseFilters=&csvAll=&theseColumns=Mw==&theseTitles=&tableTitle=FTSE%20100%20Index%20Constituents&dl=&p_encoded=1&e=.csv

Le code suivant fonctionne pour tout autre fichier (URL) (avec un chemin d'accès complet), mais avec l'URL ci-dessus est téléchargements 800 octets de charabia.

def getFile(self,URL): 

    proxy_support = urllib2.ProxyHandler({'http': 'http://proxy.REMOVED.com:8080/'}) 
    opener = urllib2.build_opener(proxy_support) 
    urllib2.install_opener(opener) 
    response = urllib2.urlopen(URL) 
    print response.geturl() 
    newfile = response.read() 
    output = open("testFile.csv",'wb') 
    output.write(newfile) 
    output.close() 
+0

Fonctionne bien pour moi sans proxy. Peut-être un problème de proxy (cache/contrôle d'accès). – gimel

Répondre

1

urllib2 utilise httplib sous le capot, de sorte que la meilleure façon de diagnostiquer est d'activer le débogage de connexion http. Ajoutez ce code avant d'accéder à l'URL et vous devriez obtenir un bon résumé de ce que le trafic http est généré:

import httplib 
httplib.HTTPConnection.debuglevel = 1 
Questions connexes