Estoy tratando de descargar un directorio completo del sitio web usando CURL. El siguiente comando no funciona:
curl -LO http://example.com/
Se devuelve un error: curl: Remote file name has no length!
.
Pero cuando hago esto: curl -LO http://example.com/someFile.type
funciona. ¿Alguna idea de cómo descargar todos los archivos en el directorio especificado? Gracias.
wget --no-parent -r http://WEBSITE.com/DIRECTORY
y también sin--no-parent
, no funcionó.HTTP realmente no tiene una noción de directorios. Las barras distintas de las tres primeras (
http://example.com/
) no tienen ningún significado especial, excepto con respecto a..
las URL relativas. Entonces, a menos que el servidor siga un formato particular, no hay forma de "descargar todos los archivos en el directorio especificado".Si desea descargar todo el sitio, su mejor opción es recorrer todos los enlaces de la página principal de forma recursiva. Curl no puede hacerlo, pero wget sí. Esto funcionará si el sitio web no es demasiado dinámico (en particular, wget no verá los enlaces construidos por el código Javascript). Comience con
wget -r http://example.com/
y busque en "Opciones de recuperación recursiva" y "Opciones de aceptación / rechazo recursivo" en el manual de wget para obtener opciones más relevantes (profundidad de recursión, listas de exclusión, etc.).Si el sitio web intenta bloquear las descargas automáticas, es posible que deba cambiar la cadena del agente de usuario (
-U Mozilla
) e ignorarlarobots.txt
(cree un archivo vacíoexample.com/robots.txt
y use la-nc
opción para que wget no intente descargarlo del servidor).fuente
-e robots=off
. Alternativamente, puede evitar descargarlo rechazándolo con-R "robots.txt"
.En este caso,
curl
NO es la mejor herramienta. Puede usarwget
con el-r
argumento, así:Esta es la forma más básica, y también puede usar argumentos adicionales. Para obtener más información, consulte el
manpage
(man wget
).fuente
Esto no es posible No hay una forma estándar, generalmente implementada, para que un servidor web le devuelva el contenido de un directorio. La mayoría de los servidores generan un índice HTML de un directorio, si está configurado para hacerlo, pero esta salida no es estándar ni está garantizada de ninguna manera. Puede analizar este HTML, pero tenga en cuenta que el formato cambiará de servidor a servidor y no siempre estará habilitado.
fuente
wget
ocurl
?Puedes usar la extensión de Firefox DownThemAll! Le permitirá descargar todos los archivos en un directorio con un solo clic. También es personalizable y puede especificar qué tipos de archivos descargar. Esta es la forma más fácil que he encontrado.
fuente
Puede encontrar un uso para un destripador de sitios web aquí, esto descargará todo y modificará los contenidos / enlaces internos para uso local. Una buena se puede encontrar aquí: http://www.httrack.com
fuente