Ceci est une ancienne révision du document !
Algorithme
Inclusion / exclusion
Analyse de la fonction download_child du fichier recur.c.
- Etape 1 :
blacklist
Est-ce que l'URL a déjà été filtré / absorbé ?
Si oui : on ignore l'URL.
- Etape 2 : option
--https-only
Est-ce que l'option https-only est activé ? Si oui, on ignore les URL ne commençant pas par HTTPS.
- Etape 3 : validation du schéma de l'URL
Est-ce que l'URL commence par HTTP ? Est-ce que l'URL commence par FTP ou FTPS et que --follow-ftp est activé ? Si non : on ignore.
- Etape 4 : filtrer les liens absolus
Est-ce que l'option --relative/-L est actif et que le lien est absolu ? Si oui : on ignore.
- Etape 5 : filtrer les domaines
Est-ce que l'option --domains / -D est actif et que le domaine ne fait pas partie de la liste autorisé ? Si oui, on ignore. Les wirdcards/regex ne sont pas autorisés.
Est-ce que l'option --exclude-domains est actif et que le domaine fait partie de la liste interdite ? Si oui, on ignore. Les wirdcards/regex ne sont pas autorisés.
- Etape 6 : option
--no-parent/-np
Toutes les conditions doivent être réunies :
--no-parentactif.- Même schéma : l'URL de base et l'URL cible sont HTTP/HTTP, HTTPS/HTTP, HTTP/HTTPS ou HTTPS/HTTPS.
- Même sous-domaine
- Si même schéma, il faut le même port.
- Si
--page-requisitesn'est pas activé ou que--page-requisitesest activé et que le fichier n'est pas indispensable au rendu de la page.
On vérifie si le fichier est dans un sous-dossier de l'URL d'origine. L'option --ignore-case est prise en compte.
- Etape 7 : include / exclude
Si ni l'option --include / -I ni --exclude / -X n'est utilisé : passé à l'étape suivante.
Est-ce que l'option --include / -I est actif et que l'URL ne fait pas partie de la liste autorisé ? Si oui, on ignore. Les wildcards *?[] sont autorisés. L'option --ignore-case est prise en compte.
Est-ce que l'option --exclude / -X est actif et que l'URL fait partie de la liste interdite ? Si oui, on ignore. Les wildcards *?[] sont autorisés. L'option --ignore-case est prise en compte.
- Etape 8 : accept-regex / reject-regex
Est-ce que l'option --accept-regex est actif et que l'URL complet ne fait pas partie de la liste autorisé ? Si oui, on ignore. Les wildcards *?[] sont autorisés. L'option --ignore-case n'est pas prise en compte.
Est-ce que l'option --reject-regex est actif et que l'URL complet ne fait partie de la liste interdite ? Si oui, on ignore. Les wildcards *?[] sont autorisés. L'option --ignore-case n'est pas prise en compte.
- Etape 9 : Vérification du niveau de récursion
Si le niveau maximum de récursion est atteint : on ignore.
- Etape 10 : Est-ce que le nom du fichier est filtré ?
Si ni l'option --accept / -A ni --reject / -R n'est utilisé : passé à l'étape suivante.
Est-ce que l'option --accept / -A est actif et que l'URL ne fait pas partie de la liste autorisé ? Si oui, on ignore. Les wildcards *?[] sont autorisés. Si les wildcards ne sont pas utilisés, on compare les suffixes. L'option --ignore-case est prise en compte.
Est-ce que l'option --reject / -R est actif et que l'URL fait partie de la liste interdite ? Si oui, on ignore. Les wildcards *?[] sont autorisés. Si les wildcards ne sont pas utilisés, on compare les suffixes L'option --ignore-case est prise en compte.
- Etape 11 : est-ce que l'exploration des autres domaines est autorisé ?
Si les schémas sont compatibles (HTTP/HTTPS), on ignore si l'URL est dans un autre domaine / sous-domaine et que l'option --span-hosts / H n'est pas activé.
- Etape 12 : robots.txt
Est-ce qu'on applique la contrainte de robots.txt. Il existe une option use_robots qui vaut true par défaut et qui ne semble pas être personnalisable.
Si toutes les étapes sont respectées, on télécharge le lien.
Exemples
Télécharger un site entier
Downloading an Entire Web Site with wget Archive du 05/09/2008 le 16/10/2019
wget --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=windows --span-hosts --domains=website.org,images.website2.org --no-parent --content-disposition www.website.org/tutorials/html/
Pas le bon nom de fichier
On téléchargeant l'url https://hal.archives-ouvertes.fr/hal-01516461/document wget considère le fichier document alors que Firefox propose le nom de fichier r_95YUWVDH.pdf. Il faut utiliser l'option --content-disposition.
wget --content-disposition https://hal.archives-ouvertes.fr/hal-01516461/document
How do I use wget with a list of URLs and their corresponding output files? Archive du 13/01/2013 le 16/10/2019
