Fai in modo che wget converta i collegamenti HTML in relativi dopo il download se -k non è stato specificato


32

L' -kopzione (o --convert-link) convertirà i collegamenti nelle tue pagine Web in relativi al termine del download, come dice la pagina man:

Al termine del download, converti i collegamenti nel documento per renderli adatti alla visualizzazione locale. Ciò influisce non solo sui collegamenti ipertestuali visibili, ma su qualsiasi parte del documento che si collega a contenuti esterni, come immagini incorporate, collegamenti a fogli di stile, collegamenti ipertestuali a contenuti non HTML, ecc.

Quindi, se non lo specificassi -k, posso eseguire di wgetnuovo dopo il download e risolverlo e, in tal caso, quale sarebbe il comando corretto? La mia ipotesi è wget -c [previous options used] [url]ed eseguirlo nella stessa directory di lavoro in cui il file è stato scaricato.


1
potresti sicuramente post-elaborare i file dopo il download, ma non so se lo wgetfaccia. la tua idea di provarlo -cè buona. tempo di sperimentare!
Quack Quixote

Hai un'utilità a portata di mano per convertire i collegamenti, per caso? In esecuzione su Windows, a proposito ...
Nathaniel,

perl... nessuna sceneggiatura pre-scritta, ma se volessi una soluzione fai-da-te è quello che avrei usato
quack quixote

Va bene, grazie. Non hai installato Perl e ci vorrebbe troppo tempo per afferrarlo. Fortunatamente, ho trovato come fare wget a fare il lavoro. Ho pubblicato una risposta
Nathaniel,

tra l'altro, ActivePerl è in giro come una porta perl di Windows; è un programma di installazione abbastanza piccolo, e sono abbastanza sicuro che la maggior parte dei moduli CPAN ci funzioni. activestate.com/activeperl
quack quixote

Risposte:


23

Sì, puoi wgetfarcela. Direi uso wget -nc -k [previous options] [previous url]. -ncè vietato. Dalla pagina man:

Quando −ncspecificato, questo comportamento viene soppresso e Wget rifiuterà di scaricare nuove copie del file.

E l' -kopzione esegue la conversione del collegamento. Quindi, wget inizia a scavare nel server remoto, vede tutti i file che hai già, rifiuta di scaricarli di nuovo e quindi modifica i collegamenti HTML su relativi quando ha finito. Bello.


3
No, questo non funziona per me. Scarica il primo file (es. Index.html), vedi che è già stato scaricato. Se vuoi che wget funzioni in modo ricorsivo, devi usare l'opzione timestamp (-K). Quindi wget deve richiedere la corrispondenza di tutte le intestazioni se il file è più recente o meno.

12
GNU Wget 1.13.3 basato su darwin11.1.0. Cercare di usare entrambe le opzioni contemporaneamente dàBoth --no-clobber and --convert-links were specified,only --convert-links will be used.
Ludovic Kuty il

2
la tua domanda non ha richiesto senza -k?
barlop

8
Cf. @ Commento di LudovicKuty - a partire da wget 1.13 --no-clobbernon funziona --convert-links. Vedi http://savannah.gnu.org/bugs/?31781 per i dettagli.
David Moles,

1
Nel caso in cui qualcuno se ne frega, ho creato un'immagine docker
berezovskyi il
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.