Estoy usando wget para descargar todas las imágenes de un sitio web y funciona bien, pero almacena la jerarquía original del sitio con todas las subcarpetas y, por lo tanto, las imágenes están salpicadas. ¿Hay alguna manera de que solo descargue todas las imágenes en una sola carpeta? La sintaxis que estoy usando en este momento es:
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
-A
opción de aceptar , consulte la documentación de Wget sobre los tipos de archivos . Además, si está descargando al directorio actual, puede eliminar la-P
opción de prefijo de directorio . Si está descargando un solo tipo de archivo, como solo jpg, use algo comowget -r -A.jpg http://www.domain.com
. Mire los ejemplos avanzados que proporciona la documentación de Wget.-nd
a lo anterior lo hace funcionar. También puede especificar varios indicadores -A como-A "*foo*" -A "*bar*"
--level=inf
o--level=9999999999
porquewget
es probable que sabotee el trabajo debido al nivel predeterminado de profundidad máxima de recursión de5
.-nd
: sin directorios (guarda todos los archivos en el directorio actual;-P directory
cambia el directorio de destino)-r -l 2
: nivel recursivo 2-A
: extensiones aceptadas-H
: abarcan hosts (wget no descarga archivos de diferentes dominios o subdominios de forma predeterminada)-p
: requisitos de la página (incluye recursos como imágenes en cada página)-e robots=off
: ejecuta el comandorobotos=off
como si fuera parte del.wgetrc
archivo. Esto desactiva la exclusión del robot, lo que significa que ignora robots.txt y las metaetiquetas del robot (debe conocer las implicaciones que esto conlleva, tenga cuidado).Ejemplo: Obtenga todos los
.jpg
archivos de un listado de directorio ejemplar:fuente
Escribí un shellscript que resuelve este problema para múltiples sitios web: https://github.com/eduardschaeli/wget-image-scraper
(Raspa imágenes de una lista de URL con wget)
fuente
Prueba este:
y espere hasta que elimine toda la información adicional
fuente
wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
De acuerdo con la página del manual, la bandera -P es:
Esto significa que solo especifica el destino, pero dónde guardar el árbol de directorios. No aplana el árbol en un solo directorio . Como se mencionó antes, la bandera -nd realmente hace eso.
@Jon en el futuro sería beneficioso describir qué hace la bandera para que comprendamos cómo funciona algo.
fuente
Las soluciones propuestas son perfectas para descargar las imágenes y si es suficiente para guardar todos los archivos en el directorio que está utilizando. Pero si desea guardar todas las imágenes en un directorio específico sin reproducir todo el árbol jerárquico del sitio, intente agregar "cortar-directorios" a la línea propuesta por Jon.
en este caso, cut-dirs evitará que wget cree subdirectorios hasta el nivel 3 de profundidad en el árbol jerárquico del sitio web, guardando todos los archivos en el directorio que especificó. Puede agregar más 'cut-dirs' con números más altos si se trata de sitios con una estructura profunda.
fuente
La utilidad wget recupera archivos de la World Wide Web (WWW) utilizando protocolos ampliamente utilizados como HTTP, HTTPS y FTP. La utilidad Wget es un paquete disponible gratuitamente y la licencia está bajo licencia GNU GPL. Esta utilidad se puede instalar en cualquier sistema operativo tipo Unix, incluidos Windows y MAC OS. Es una herramienta de línea de comandos no interactiva. La característica principal de Wget es su robustez. Está diseñado de tal manera que funciona en conexiones de red lentas o inestables. Wget inicia automáticamente la descarga donde se dejó en caso de problemas de red. También descarga archivos de forma recursiva. Seguirá intentándolo hasta que el archivo se haya recuperado por completo.
Instalar wget en la máquina de Linux sudo apt-get install wget
Cree una carpeta donde desee descargar archivos. sudo mkdir myimages cd myimages
Haga clic derecho en la página web y, por ejemplo, si desea la ubicación de la imagen, haga clic derecho en la imagen y copie la ubicación de la imagen. Si hay varias imágenes, siga lo siguiente:
Si hay 20 imágenes para descargar de la web de una vez, el rango comienza de 0 a 19.
wget http://joindiaspora.com/img {0..19} .jpg
fuente