Come posso usare Wget per scaricare tutte le immagini in una singola cartella, da un URL?


133

Sto usando wget per scaricare tutte le immagini da un sito Web e funziona benissimo ma memorizza la gerarchia originale del sito con tutte le sottocartelle e quindi le immagini sono tratteggiate. C'è un modo per scaricare tutte le immagini in una singola cartella? La sintassi che sto usando al momento è:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Risposte:


194

Prova questo:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Ecco qualche informazione in più:

-ndimpedisce la creazione di una gerarchia di directory (ovvero nessuna directory ).

-rabilita il recupero ricorsivo. Vedere Download ricorsivo per ulteriori informazioni.

-P imposta il prefisso della directory in cui vengono salvati tutti i file e le directory.

-Aimposta una whitelist per il recupero solo di determinati tipi di file. Sono accettate stringhe e motivi ed entrambi possono essere utilizzati in un elenco separato da virgole (come visto sopra). Vedere Tipi di file per ulteriori informazioni.


5
Questo in realtà non ha funzionato per me. La mia posizione di salvataggio era "." e ha copiato l'intera gerarchia del sito lì.
Buttle Butkus,

2
@ButtleButkus Sembra che tu abbia bisogno di un po 'più di confusione con l' -Aopzione accetta , vedi la documentazione di Wget sui tipi di file . Inoltre, se stai scaricando nella directory corrente, puoi rimuovere l' -Popzione del prefisso della directory . Se stai scaricando un singolo tipo di file, come solo jpg, usa qualcosa di simile wget -r -A.jpg http://www.domain.com. Guarda gli esempi avanzati forniti dalla documentazione di Wget.
Jon

Aggiungendo -nd a quanto sopra lo fa funzionare. Puoi anche specificare più flag -A come-A "*foo*" -A "*bar*"
Yablargo

1
Non dimenticare di utilizzare --level=info --level=9999999999perché wgetè probabile che saboti il ​​lavoro a causa del livello di profondità massima di ricorsione predefinito 5.
user619271

127
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
  • -nd: nessuna directory (salva tutti i file nella directory corrente; -P directorycambia la directory di destinazione)
  • -r -l 2: livello ricorsivo 2
  • -A: estensioni accettate
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
  • -H: span hosts (per impostazione predefinita wget non scarica file da domini o sottodomini diversi)
  • -p: requisiti di pagina (include risorse come immagini su ogni pagina)
  • -e robots=off: esegue il comando robotos=offcome se fosse parte del .wgetrcfile. Ciò disattiva l'esclusione del robot, il che significa che ignori robots.txt e i meta tag robot (dovresti conoscere le implicazioni che ne derivano, fai attenzione).

Esempio: ottenere tutti i .jpgfile da un elenco di directory esemplare:

$ wget -nd -r -l 1 -A jpg http://example.com/listing/


9

Prova questo:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

e attendi fino a quando non cancella tutte le informazioni extra


Non funziona per me. wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Vivo,

5

Secondo la pagina man la bandiera -P è:

-P prefisso --directory-prefix = prefisso Imposta il prefisso della directory su prefisso. Il prefisso della directory è la directory in cui verranno salvati tutti gli altri file e sottodirectory, ovvero la parte superiore dell'albero di recupero. L'impostazione predefinita è. (la directory corrente).

Ciò significa che specifica solo la destinazione ma dove salvare l'albero delle directory. Non appiattisce l'albero in una sola directory . Come accennato prima, il flag -nd lo fa effettivamente.

@Jon in futuro sarebbe utile descrivere cosa fa la bandiera, quindi capiamo come funziona qualcosa.


2

Le soluzioni proposte sono perfette per scaricare le immagini e se è abbastanza per te salvare tutti i file nella directory che stai utilizzando. Ma se vuoi salvare tutte le immagini in una directory specificata senza riprodurre l'intero albero gerarchico del sito, prova ad aggiungere "cut-dirs" alla linea proposta da Jon.

wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3

in questo caso cut-dirs impedirà a wget di creare sottodirectory fino al 3 ° livello di profondità nella struttura gerarchica del sito Web, salvando tutti i file nella directory specificata. È possibile aggiungere più 'cut-dirs' con numeri più alti se si hanno a che fare con siti con una struttura profonda.


-7

L'utilità wget recupera i file dal World Wide Web (WWW) utilizzando protocolli ampiamente utilizzati come HTTP, HTTPS e FTP. L'utilità Wget è un pacchetto disponibile gratuitamente e la licenza è sotto licenza GNU GPL. Questa utility può essere installata su qualsiasi sistema operativo simile a Unix inclusi Windows e MAC OS. È uno strumento da riga di comando non interattivo. La caratteristica principale di Wget è la sua robustezza. È progettato in modo tale da funzionare con connessioni di rete lente o instabili. Wget avvia automaticamente il download da dove era stato interrotto in caso di problemi di rete. Scarica anche i file in modo ricorsivo. Continuerà a provare fino a quando il file non sarà recuperato completamente.

Installa wget nella macchina linux sudo apt-get install wget

Crea una cartella in cui desideri scaricare i file. sudo mkdir myimages cd myimages

Fare clic con il tasto destro sulla pagina Web e, ad esempio, se si desidera la posizione dell'immagine, fare clic con il tasto destro del mouse sull'immagine e copiare la posizione dell'immagine. Se ci sono più immagini, segui quanto segue:

Se ci sono 20 immagini da scaricare contemporaneamente dal Web, l'intervallo inizia da 0 a 19.

wget http://joindiaspora.com/img {0..19} .jpg


2
La tua risposta spiega cos'è wget e come usarlo per scaricare immagini numerate in sequenza ... nessuno dei due è correlato alla domanda originale.
Alastair,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.