Outils pour utilisateurs

Outils du site


cmd:wget

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
cmd:wget [2015/08/05 15:35] – ↷ Page déplacée et renommée de cmd_wget à cmd:wget rootcmd:wget [2021/02/01 14:26] (Version actuelle) – Ajout de "Proxy" root
Ligne 1: Ligne 1:
-=====Télécharger un site entier===== +====Algorithme==== 
-[[http://www.linuxjournal.com/content/downloading-entire-web-site-wget|Source]]{{:wiki:cmd:wget:downloading_an_entire_web_site_with_wget.htm.maff|Archive}} + 
-  wget --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=windows --domains website.org --no-parent www.website.org/tutorials/html/+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 : 
 + 
 +<code> 
 +https_proxy = http://xx.xx.xx.xx:80/ 
 +http_proxy = http://xx.xx.xx.xx:80/ 
 +ftp_proxy = http://xx.xx.xx.xx:80/ 
 +</code> 
 + 
 +====Exemples==== 
 +===Télécharger un site entier=== 
 +[[http://www.linuxjournal.com/content/downloading-entire-web-site-wget|Downloading an Entire Web Site with wget]] {{ :cmd:wget:downloading_an_entire_web_site_with_wget_linux_journal_2019-10-16_09_10_44_.html |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 
 + 
 +[[https://unix.stackexchange.com/questions/61132/how-do-i-use-wget-with-a-list-of-urls-and-their-corresponding-output-files|How do I use wget with a list of URLs and their corresponding output files?]] {{ :cmd:wget:how_do_i_use_wget_with_a_list_of_urls_and_their_corresponding_output_files_-_unix_linux_stack_exchange_2019-10-16_09_10_52_.html |Archive du 13/01/2013 le 16/10/2019}}
cmd/wget.1438781720.txt.gz · Dernière modification : 2015/08/05 15:35 de root