2012-05-23 7 views
5

Mi piacerebbe rispecchiare un semplice portale Web protetto da password per alcuni dati che mi piacerebbe mantenere aggiornato il mirroring &. In sostanza questo sito Web è solo un elenco di directory con i dati organizzati in cartelle & Non mi interessa davvero di mantenere i file html & altri elementi di formattazione. Tuttavia ci sono alcuni tipi di file enormi che sono troppo grandi per il download, quindi voglio ignorarli.mirror http del sito web, esclusi determinati file

L'utilizzo del flag wget -m -R/--reject fa quasi ciò che voglio, con la differenza che tutti i file vengono scaricati, quindi se corrispondono al flag -R, vengono eliminati.

Ecco come sto usando wget:

wget --http-user userName --http-password password -R index.html,*tiff,*bam,*bai -m http://web.server.org/ 

che produce output come questo, che conferma che un file escluso (index.html) (a) viene scaricato, e (b) poi viene cancellato:

...
--2012-05-23 09: 38: 38-- http://web.server.org/folder/
Riusare connessione a web.server.org:80 esistente.
Richiesta HTTP inviata, in attesa di risposta ... 401 Autorizzazione richiesta
Riutilizzo della connessione esistente a web.server.org:80.
HTTP richiesta inviata, in attesa di risposta ... 200 OK
Lunghezza: 2677 (2.6K) [text/html]
Risparmio di: `web.server.org/folder/index.html' 100% [= ================================================== ================================================== =================>] 2,677 --.- K/s in 0s

Manca l'intestazione dell'ultima modifica - i timestamp disattivati.
2012-05-23 09:38:39 (328 MB/s) - `web.server.org/folder/index.html' salvato [2677/2677]

Rimozione web.server.org/folder /index.html poiché dovrebbe essere rifiutato.

...

c'è un modo per forzare wget per rifiutare il file prima di scaricarlo?
C'è un'alternativa che dovrei prendere in considerazione?

Inoltre, perché ottengo un errore di 401 Authorization Required per ogni file scaricato, nonostante fornendo nome utente & password. È come se wget tentasse di connettersi ogni volta non autenticato, prima di provare il nome utente/password.

grazie, Mark

+0

See la soluzione sulla modifica di wget da questa domanda (duplicata): http://stackoverflow.com/questions/12704197/wget-reject-still-downloads-file – taranaki

risposta

4

Pavuk (http://www.pavuk.org) sembrava un'alternativa promettente che consente di eseguire il mirroring dei siti Web, esclusi i file in base ai pattern URL e le estensioni dei file ... ma pavuk 0.9.35 seg-faults/dies a caso nel mezzo di lunghi trasferimenti & non sembra essere attivamente sviluppato (questa versione è stata costruita nel novembre 2008).

Cordiali saluti, ecco come lo stavo usando:
pavuk -mode mirror -force_reget -preserve_time -progress -Robots -auth_scheme 3 -auth_name x -auth_passwd x -dsfx 'html,bam,bai,tiff,jpg' -dont_leave_site -remove_old -cdir /path/to/root -subdir /path/to/root -skip_url_pattern ’*icons*’ -skip_url_pattern '*styles*' -skip_url_pattern '*images*' -skip_url_pattern '*bam*' -skip_url_pattern '*solidstats*' http://web.server.org/folder 2>&1 | tee pavuk- data .log

alla fine, wget --exclude-directories ha fatto il trucco:

wget --mirror --continue --progress=dot:mega --no-parent \ 
--no-host-directories --cut-dirs=1 \ 
--http-user x --http-password x \ 
--exclude-directories='folder/*/folder_containing_large_data*' --reject "index.html*" \ 
--directory-prefix /path/to/local/mirror 
http://my.server.org/folder 

Dal momento che i --exclude-directories jolly non campata '/', è necessario formulare le query in modo specifico per evitare di scaricare intere cartelle.

Mark

0

wget -X directory_to_exclude [, other_directory_to_exclude] -r ftp://URL_ftp_server

 
SERVER 
    |-logs 
    |-etc 
    |-cache 
    |-public_html 
     |-images 
     |-videos (want to exclude) 
     |-files 
     |-audio (want to exclude) 

wget -X/public_html/video,/public_html/audio ftp: SERVER/public_html/*