125 votos

Obtención de archivos, todos a la vez, de una página web con curl

Me gustaría descargar los archivos, todos a la vez, a partir de la siguiente página usando curl: http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/

He intentado curl http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/ y devuelve un montón de líneas en la terminal, pero me cansaría de obtener cualquier tipo de archivos.

171voto

Fuzzy Purple Monkey Puntos 702

Uso wget lugar. Se puede instalar con brew install wget o sudo port install wget.

Para la descarga de archivos a partir de un listado de directorio, use -r (recursivo), -np (no sigue los enlaces a directorios padre), y -k links de descargar el HTML o CSS punto a archivos locales (crédito @xaccrocheur).

wget -r -np -k http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/

Otras opciones útiles:

  • -nd (no hay directorios): descargar todos los archivos en el directorio actual
  • -e robots.off: ignora robots.txt los archivos, que no se descarga robots.txt los archivos
  • -A png,jpg: aceptar sólo los archivos con las extensiones png o jpg
  • -m (espejo): -r --timestamping --level inf --no-remove-listing

31voto

curl sólo puede leer solo archivos de páginas web, el montón de líneas que tienes es en realidad el índice de directorio (que también se puede ver en su navegador, si usted va a la URL). El uso de curl y algunos Unix herramientas de la magia para obtener los archivos que usted podría usar algo como

for file in $(curl -s http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/ |
                  grep href |
                  sed 's/.*href="http://apple.stackexchange.com//' |
                  sed 's/".*//' |
                  grep '^[a-zA-Z].*'); do
    curl -s -O http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/$file
done

que va a obtener todos los archivos en el directorio actual.

Para obtener más elaborado necesidades (incluyendo la obtención de un montón de archivos desde un sitio con carpetas/directorios), wget (como se propone en otra respuesta ya) es la mejor opción.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X