Télécharger une list de pages Web dans un file et les renommer pour éviter l'écrasement?

$ wget -r -np -nH --cut-dirs=2 -p -k "http://www.example.com/1" -O test.html Cannot specify both -k and -O if multiple URLs are given, or in combination with -p or -r. See the manual for details. Usage: wget [OPTION]... [URL]... 

Je me request comment résoudre le problème?

Dans mon problème actuel, j'ai stocké une list d'URL dans un file text, comme

 http://www.example.com/1 http://www.example.com/2 http://www.example.com/3 

Je veux download chaque page Web avec les files affiliés nécessaires pour déplacer la page Web.

Par défaut, chaque file téléchargé est nommé index.html , écrasant ainsi la page Web précédemment téléchargée. J'essaie donc de renommer les files téléchargés en nombre représentant leur ordre de téléchargement:

 i=0 for url in $(cat ../htmls); do wget -r -np -nH --cut-dirs=1 -p -k "$url" -O $(printf %04d $i).html; i=$((i+1)) done 

C'est quand l'erreur au début apparaît.

Vous aurez besoin des files index.html puisque les différents liens dans les pages Web countront sur eux. Je voudrais simplement save chaque page Web dans son propre directory:

 while read url; do mkdir "$url"; cd "$url" wget -r -np -nH --cut-dirs=1 -p -k "$url" cd ../ done 

Comme il s'avère, wget déjà par défaut, donc utilisez plutôt l' approche de Stephen .

Le comportement par défaut de wget avec -r est de stocker les files téléchargés dans les directorys correspondant à l'URL, afin que vous puissiez le faire:

 wget -r -np -p -i myurls 

(où myurls est votre file contenant les URL à download).

La masse de directorys qui en résulte peut ne pas être très agréable pour vous, mais cela vous permettra d'avoir tout ce dont vous avez besoin pour afficher les files téléchargés et que rien ne sera écrasé …