[Python-es] Descarga de fichero con urllib2
Kiko
kikocorreoso en gmail.com
Mar Abr 3 11:55:05 CEST 2012
Hola.
Estoy intentando descargar un fichero usando urllib2. Lo que hago es lo
siguiente:
##################################################################################
import urllib2
# Estoy saliendo por un proxy
proxy = urllib2.ProxyHandler({'http':
'http://user:password@proxyserver.com:8080'})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler)
urllib2.install_opener(opener)
# Ahora 'conecto' con el fichero y lo guardo
remotefile = urllib2.urlopen('
http://soprano.cls.fr/searchL2/searchL2/L2/windProducts/getNetCDF/2052')
localfile = open('mifichero.nc', 'w')
localfile.write(remotefile.read())
localfile.close()
##################################################################################
El fichero que me intento descargar es un fichero netCDF (
http://www.unidata.ucar.edu/software/netcdf/). Si lo descargo a mano me
ocupa x y si lo descargo como he puesto anteriormente me ocupa x + y.
Si abro el fichero descargado a mano con netcdf4-python (
http://code.google.com/p/netcdf4-python/) no tengo ningún problema pero si
abro el bajado con el anterior script tengo errores.
He estado mirando lo siguiente:
In [24]: for key in remotefile.info().keys(): print key, ' = '
remotefile.info()[key]
que me da el siguiente output
content-length = 6418252
content-disposition =
filename=ASA_WSM_1PNPDE20120402_111643_000000923113_00181_52781_8898_wind.nc
age = 3
server = Cherokee/1.0.8 (Debian GNU/Linux)
connection = close
pragma = no-cache
cache-control = no-cache
date = Tue, 03 Apr 2012 09:19:39 GMT
content-type = application/x-netcdf
Donde content-lenght refleja el número de bytes reales que tiene el fichero
descargado a mano (la x anterior). El descargado con python me ocupa (x + y
= 6435760)
Entiendo que usando localfile (open, write, close) me está guardando cosas
que no quiero (¿el servidor envía cabeceros y cosas así? Lo siento, con
estos temas me pierdo un poco).
¿Como puedo guardar solo lo que quiero, es decir, el fichero en sí, igual
que si me lo descargo a mano?
Espero se entienda mi duda y disculpad si la duda es muy evidente, no suelo
usar urllib2 y ando un poco perdido.
Saludos y gracias por adelantado.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120403/3788e9dc/attachment.html>
Más información sobre la lista de distribución Python-es