Table des matières

Algorithme

Analyse de la fonction download_child du fichier recur.c.

Est-ce que l'URL a déjà été filtré / absorbé ?

Si oui : on ignore l'URL.

Est-ce que l'option https-only est activé ? Si oui, on ignore les URL ne commençant pas par HTTPS.

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.

Est-ce que l'option --relative/-L est actif et que le lien est absolu ? Si oui : on ignore.

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.

Toutes les conditions doivent être réunies :

On vérifie si le fichier est dans un sous-dossier de l'URL d'origine. L'option --ignore-case est prise en compte.

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.

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.

Si le niveau maximum de récursion est atteint : on ignore.

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.

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é.

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.

Configuration

Proxy

Il faut éditer le fichier /etc/wgetrc et configurer les lignes :

https_proxy = http://xx.xx.xx.xx:80/
http_proxy = http://xx.xx.xx.xx:80/
ftp_proxy = http://xx.xx.xx.xx:80/

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 --no-parent --content-disposition --domains=website.org,images.website2.org 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