Outils pour utilisateurs

Outils du site


cmd:wget

Table des matières

Algorithme

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.

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

cmd/wget.txt · Dernière modification : 2021/02/01 14:26 de root