[Python-es] urllib.error.URLError: <urlopen error no host given>

Kiko kikocorreoso en gmail.com
Mar Dic 1 05:12:01 EST 2015


El 30 de noviembre de 2015, 23:10, Juan M. Puertas <soft.sirius en gmail.com>
escribió:

> Hola Gonzalo.
> Has de escribir el path de una manera adecuada, con la ventaja de ser
> multiplataforma.
> Busca información sobre "os.path.join" como sustituto al carácter "\" .
> Es la solución a tu problema.
> Saludos :-)
>
>
> El 30 de noviembre de 2015, 22:59, Gonzalo V <gvm2121 en gmail.com> escribió:
>
>> Pucha estimados.
>> Ya me da verguenza andar pidiendo ayuda tan seguido pero python se me es
>> muy necesario en el estudio de la economía.
>> Por el momento estoy haciendo un script que saca los datos histórico de
>> ciertas acciones de una bolsa de comercio. El problema que me da el error
>> urlopen error no host given y llevo toda la tarde tratando de sacar el
>> problema y no puedo hacerlo.
>> Es script es:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *import urllib.requestf=open('IPSA.csv', newline='\r')for line in f:
>> li=line.rstrip('\r')    #print(li)
>> url='http://www.bolsadesantiago.com/mercado/Paginas/Resumen-de-Instrumento.aspx?RequestHistorico=1&Nemo='+line
>> <http://www.bolsadesantiago.com/mercado/Paginas/Resumen-de-Instrumento.aspx?RequestHistorico=1&Nemo='+line>
>> ruta='C:\Python34\BETAS\\%s.csv' % li    r=urllib.request.urlretrieve(url,
>> filename=ruta)    print(type(r))    print('*** '+li+' LISTO ***')f.close*
>>
>> y el error que me da es:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> **** AESGENER LISTO ***Traceback (most recent call last):  File
>> "C:\Python34\BETAS\BETAS.py", line 10, in <module>
>> r=urllib.request.urlretrieve(url, filename=ruta)  File
>> "C:\Python34\lib\urllib\request.py", line 186, in urlretrieve    with
>> contextlib.closing(urlopen(url, data)) as fp:  File
>> "C:\Python34\lib\urllib\request.py", line 161, in urlopen    return
>> opener.open(url, data, timeout)  File "C:\Python34\lib\urllib\request.py",
>> line 461, in open    req = meth(req)  File
>> "C:\Python34\lib\urllib\request.py", line 1105, in do_request_    raise
>> URLError('no host given')urllib.error.URLError: <urlopen error no host
>> given>*
>> el problema que me funciona bien con el primer nombre que está dentro del
>> archivo luego se cae.
>> ¿tendrá que ver la codificacion del IPSA.csv?
>> ¿Alguien me puede ayudar?
>>
>
Si vas a hacer estudios económicos con series temporales quizá deberías
echarle un ojo a pandas.

Si solo quieres descargar la información lo que andas haciendo sería válido.

Como te comenta Juan, échale un ojo al módulo os.path. En windows las rutas
se escriben de determinada forma mientras que en otros sistemas operativos
se escriben de otra forma. Por ejemplo, en windows una ruta es:

'C:\path\to\file.txt'

Una ruta parecida en linux podría ser:

'/path/to/file.txt'

Pero '\t' es un símbolo especial (tabulación) y '\' se usa para algunos
símbolos o 'escapar' caracteres especiales y, por tanto, existen conflictos
cuando usas '\' en windows porque Python no entiende la ruta. Si no quieres
vivir ese infierno con Windows debes construir tus rutas usando el módulo
os.path. Apréndelo bien y lo agradecerás.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20151201/5bbaf46c/attachment.html>


Más información sobre la lista de distribución Python-es