Outils pour utilisateurs

Outils du site


cmd:wget

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-parent actif.
  • 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-requisites n'est pas activé ou que --page-requisites est 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 --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

cmd/wget.1602492228.txt.gz · Dernière modification : 2020/10/12 10:43 de root