Come scaricare tutti i file (ma non HTML) da un sito Web usando wget?


162

Come utilizzare wgete ottenere tutti i file dal sito Web?

Ho bisogno di tutti i file tranne i file delle pagine Web come HTML, PHP, ASP ecc.


Anche se vuoi scaricare php, non è possibile usare wget. Possiamo ottenere solo HTML non elaborati utilizzando wget. Immagino che tu conosca il motivo
Venkateshwaran Selvaraj,

NB: verifica sempre wget --spiderprima e aggiungi sempre -w 1(o più -w 5) in modo da non inondare il server dell'altra persona.
Isomorfismi

1
Come posso scaricare tutti i file pdf in questa pagina? pualib.com/collection/pua-titles-a.html

Stack Overflow è un sito per domande di programmazione e sviluppo. Questa domanda sembra essere fuori tema perché non si tratta di programmazione o sviluppo. Consulta quali argomenti posso chiedere qui nel Centro assistenza. Forse Super User o Unix & Linux Stack Exchange sarebbero un posto migliore da chiedere. Vedi anche Dove posso pubblicare domande su Dev Ops?
1717

Risposte:


262

Per filtrare estensioni di file specifiche:

wget -A pdf,jpg -m -p -E -k -K -np http://site/path/

Oppure, se si preferiscono nomi lunghi di opzioni:

wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/

Questo rispecchierà il sito, ma i file senza jpgo pdfestensione verranno automaticamente rimossi.


17
Se vuoi semplicemente scaricare file senza architettura di intere directory, puoi usare l' opzione -nd .
diabloneo,

4
cosa significa ciascuna delle bandiere?
Jürgen Paul,

Penso che --acceptfaccia distinzione tra maiuscole e minuscole, quindi dovresti farlo--accept pdf,jpg,PDF,JPG
Flimm,

8
non sono sicuro se questo è con una nuova versione di wgetma devi specificare un --progresstipo, ad esempio--progress=dot
jamis

@Flimm puoi anche usare --ignore-caseflag per rendere --acceptinsensibile al maiuscolo / minuscolo.
Duro

84

Questo ha scaricato l' intero sito Web per me:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/

20
+1 per -e robots=off! Questo finalmente risolto il mio problema! :) Grazie
NHDaly il

12
L' --random-waitopzione è geniale;)
poitroae,

2
@izilotti Il proprietario del sito può scoprire se OTTIENI i file del sito con questo metodo?
Elias7,

1
@whatIsperfect È sicuramente possibile.
Jack,

1
@JackNicholsonn Come farà a sapere il proprietario del sito? L'agente utilizzato era Mozilla, il che significa che tutte le intestazioni entreranno come browser Mozilla, quindi rilevare wget come usato non sarebbe possibile? Per favore, correggi se sbaglio. grazie
KhoPhi il

63
wget -m -p -E -k -K -np http://site/path/

la pagina man ti dirà cosa fanno queste opzioni.

wgetseguirà solo i collegamenti, se non esiste alcun collegamento a un file dalla pagina dell'indice, quindi wgetnon saprà della sua esistenza e quindi non lo scaricherà. vale a dire. aiuta se tutti i file sono collegati in pagine Web o in indici di directory.


Grazie per la risposta :) Copia l'intero sito e ho bisogno solo di file (ad es. Txt, pdf, immagine ecc.) Nel sito Web
Aniruddhsinh

25

Stavo provando a scaricare i file zip collegati dalla pagina dei temi di Omeka - un compito abbastanza simile. Questo ha funzionato per me:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
  • -A: accetta solo file zip
  • -r: ricorso
  • -l 1: un livello profondo (ovvero solo i file collegati direttamente da questa pagina)
  • -nd: non creare una struttura di directory, basta scaricare tutti i file in questa directory.

Tutte le risposte con -k, -K, -Eecc opzioni probabilmente non hanno realmente capito la domanda, come quelli che per riscrivere le pagine HTML per fare una struttura locale, rinominare .phpi file e così via. Non rilevante.

Per ottenere letteralmente tutti i file tranne .html ecc:

wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com

2
-Aè sensibile al maiuscolo / minuscolo, penso, quindi dovresti farlo-A zip,ZIP
Flimm,

7

Puoi provare:

wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/

Inoltre puoi aggiungere:

-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar

per accettare le estensioni specifiche o per rifiutare solo estensioni specifiche:

-R html,htm,asp,php

o per escludere le aree specifiche:

-X "search*,forum*"

Se i file vengono ignorati per i robot (ad esempio i motori di ricerca), devi aggiungere anche: -e robots=off


5

Prova questo. Funziona sempre per me

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

5
wget -m -A * -pk -e robots=off www.mysite.com/

questo scaricherà tutti i tipi di file localmente e li indicherà dal file html e ignorerà il file dei robot


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.