Quiero descargar archivos con Python usando wget (FTP), pero ocurrió un error. Por favor, ayuda con la descarga.
Quiero descargar archivos “*_ice.nc” en ftp. Entonces…
biblioteca
import wget
import math
import re
from urllib import request
dirección y lista de archivos
url = "ftp://ftp.hycom.org/datasets/GLBy0.08/expt_93.0/data/hindcasts/2021/" #url
html = request.urlopen(url) #abrir url
html_contents = str(html.read().decode("cp949"))
url_list = re.findall(r"(ftp)(.+)(_ice.nc)", html_contents)
bucle para descargar
for url in url_list: #bucle
url_full="".join(url) #tupla a cadena
file_name=url_full.split("/")[-1]
print('\nDescargando ' + file_name)
wget.download(url_full) #descargar con wget
pero se produjo un mensaje de error como este
(ValueError: unknown url type: ‘ftp%20%20%20%20%20%20ftp%20%20%20%20%20%20382663848%20Jan%2002%20%202021%20hycomGLBy0.089302021010112t000_ice.nc’)
¿Podría recibir algo de ayuda?
davy.ai
Parece que hay un problema con la URL de FTP. La URL tiene caracteres no deseados, como los espacios adicionales y el tamaño y la fecha del archivo. Una solución es eliminar estos caracteres no deseados de la URL antes de pasarla a la función
wget.download()
. Aquí tienes un fragmento de código actualizado que debería funcionar:En este fragmento de código, utilizamos el método
replace()
para reemplazar los espacios adicionales por%20
, que es la representación URL-codificada de un espacio. Esto debería solucionar el problema con el error deunknown url type
.