7 astuces pratiques pour utiliser la commande Linux wget


  • FrançaisFrançais


  • Wget est un utilitaire gratuit pour télécharger des fichiers à partir du Web. Il récupère les données d’Internet et les enregistre dans un fichier ou les affiche dans votre terminal. C’est littéralement aussi ce que font les navigateurs Web, tels que Firefox ou Chromium, sauf que par défaut, ils rendre les informations dans une fenêtre graphique et nécessitent généralement qu’un utilisateur les contrôle activement. Les wget L’utilitaire est conçu pour être non interactif, ce qui signifie que vous pouvez créer un script ou planifier wget pour télécharger des fichiers, que vous soyez sur votre ordinateur ou non.

    Télécharger un fichier avec wget

    Vous pouvez télécharger un fichier avec wget en fournissant un lien vers une URL spécifique. Si vous fournissez une URL par défaut index.html, puis la page d’index est téléchargée. Par défaut, le fichier est téléchargé dans un fichier du même nom dans votre répertoire de travail actuel.

    $ wget http://example.com
    --2021-09-20 17:23:47-- http://example.com/
    Resolving example.com... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
    Connecting to example.com|93.184.216.34|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1256 (1.2K) [text/html]
    Saving to: 'index.html'

    Tu peux faire wget envoyer les données vers la sortie standard (stdout) à la place en utilisant le --output-document avec un tiret - personnage:

    $ wget http://example.com --output-document - | head -n4
    <!doctype html>
    <html>
    <head>
       <title>Example Domain</title>

    Vous pouvez utiliser le --output-document option (-O en abrégé) pour nommer votre téléchargement comme vous le souhaitez :

    $ wget http://example.com --output-document foo.html

    Continuer un téléchargement partiel

    Si vous téléchargez un fichier très volumineux, vous devrez peut-être interrompre le téléchargement. Avec le --continue (-c pour faire court), wget peut déterminer où le téléchargement s’est arrêté et continuer le transfert de fichiers. Cela signifie que la prochaine fois que vous téléchargerez une ISO de distribution Linux de 4 Go, vous n’aurez jamais à revenir au début en cas de problème.

    $ wget --continue https://example.com/linux-distro.iso

    Télécharger une séquence de fichiers

    S’il ne s’agit pas d’un gros fichier mais de plusieurs fichiers que vous devez télécharger, wget peut vous aider avec ça. En supposant que vous connaissiez l’emplacement et le modèle de nom de fichier des fichiers que vous souhaitez télécharger, vous pouvez utiliser la syntaxe Bash pour spécifier les points de début et de fin entre une plage d’entiers pour représenter une séquence de noms de fichiers :

    $ wget http://example.com/file_{1..4}.webp

    Dupliquer un site entier

    Vous pouvez télécharger un site entier, y compris sa structure de répertoires, en utilisant le --mirror option. Cette option est la même que l’exécution --recursive --level inf --timestamping --no-remove-listing, ce qui signifie qu’il est infiniment récursif, vous obtenez donc tout sur le domaine que vous spécifiez. Selon l’âge du site Web, cela pourrait signifier que vous obtenez beaucoup plus de contenu que vous ne le pensez.

    Si vous utilisez wget pour archiver un site, puis les options --no-cookies --page-requisites --convert-links sont également utiles pour s’assurer que chaque page est fraîche, complète et que la copie du site est plus ou moins autonome.

    Modifier les en-têtes HTML

    Les protocoles utilisés pour l’échange de données contiennent de nombreuses métadonnées intégrées dans les paquets que les ordinateurs envoient pour communiquer. Les en-têtes HTTP sont des composants de la partie initiale des données. Lorsque vous naviguez sur un site Web, votre navigateur envoie des en-têtes de requête HTTP. Utilisez le --debug option pour voir quelles informations d’en-tête wget envoie à chaque demande :

    $ wget --debug example.com
    ---request begin---
    GET / HTTP/1.1
    User-Agent: Wget/1.19.5 (linux-gnu)
    Accept: */*
    Accept-Encoding: identity
    Host: example.com
    Connection: Keep-Alive

    ---request end---

    Vous pouvez modifier l’en-tête de votre demande avec le --header option. Par exemple, il est parfois utile d’imiter un navigateur spécifique, soit à des fins de test, soit pour tenir compte de sites mal codés qui ne fonctionnent correctement que pour des agents utilisateurs spécifiques.

    Pour vous identifier en tant que Microsoft Edge s’exécutant sous Windows :

    $ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://example.com

    Vous pouvez également vous faire passer pour un appareil mobile spécifique :

    $ wget --debug
    --header="User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1"
    http://example.com

    Affichage des en-têtes de réponse

    De la même manière que les informations d’en-tête sont envoyées avec les requêtes du navigateur, les informations d’en-tête sont également incluses dans les réponses. Vous pouvez voir les en-têtes de réponse avec le --debug option:

    $ wget --debug example.com
    [...]
    ---response begin---
    HTTP/1.1 200 OK
    Accept-Ranges: bytes
    Age: 188102
    Cache-Control: max-age=604800
    Content-Type: text/html; charset=UTF-8
    Etag: "3147526947"
    Server: ECS (sab/574F)
    Vary: Accept-Encoding
    X-Cache: HIT
    Content-Length: 1256

    ---response end---
    200 OK
    Registered socket 3 for persistent reuse.
    URI content encoding = 'UTF-8'
    Length: 1256 (1.2K) [text/html]
    Saving to: 'index.html'

    Répondre à une réponse 301

    Un code de réponse 200 signifie que tout a fonctionné comme prévu. Une réponse 301, en revanche, signifie qu’une URL a été déplacée de façon permanente vers un autre emplacement. Il s’agit d’un moyen courant pour un administrateur de site Web de déplacer du contenu tout en laissant une « trace » afin que les personnes visitant l’ancien emplacement puissent toujours le trouver. Par défaut, wget suit les redirections, et c’est probablement ce que vous voulez normalement qu’il fasse.

    Cependant, vous pouvez contrôler ce wget fait lorsqu’il rencontre une réponse 301 avec le --max-redirect option. Vous pouvez le régler sur 0 pour suivre aucune redirection :

    $ wget --max-redirect 0 http://iana.org
    --2021-09-21 11:01:35-- http://iana.org/
    Resolving iana.org... 192.0.43.8, 2001:500:88:200::8
    Connecting to iana.org|192.0.43.8|:80... connected.
    HTTP request sent, awaiting response... 301 Moved Permanently
    Location: https://www.iana.org/ [following]
    0 redirections exceeded.

    Alternativement, vous pouvez le définir sur un autre nombre pour contrôler le nombre de redirections wget suit.

    Développer une URL raccourcie

    Les --max-redirect L’option est utile pour consulter les URL raccourcies avant de les visiter réellement. Les URL raccourcies peuvent être utiles pour les médias imprimés, dans lesquels les utilisateurs ne peuvent pas simplement copier et coller une URL longue, ou sur les réseaux sociaux avec des limites de caractères (ce n’est pas autant un problème sur un réseau social moderne et open source comme Mastodon ). Cependant, ils peuvent aussi être un peu dangereux car leur destination est, par nature, dissimulée. En combinant le --head option pour afficher uniquement les en-têtes HTTP, et le --location option pour découvrir la destination finale d’une URL, vous pouvez consulter une URL raccourcie sans charger la ressource complète :

    $ wget --max-redirect 0 "https://bit.ly/2yDyS4T"
    --2021-09-21 11:32:04-- https://bit.ly/2yDyS4T
    Resolving bit.ly... 67.199.248.10, 67.199.248.11
    Connecting to bit.ly|67.199.248.10|:443... connected.
    HTTP request sent, awaiting response... 301 Moved Permanently
    Location: http://example.com/ [following]
    0 redirections exceeded.

    L’avant-dernière ligne de sortie, commençant par Emplacement, révèle la destination prévue.

    Utiliser wget

    Une fois que vous vous êtes entraîné à penser au processus d’exploration du Web en tant que commande unique, wget devient un moyen rapide et efficace d’extraire les informations dont vous avez besoin sur Internet sans vous soucier d’une interface graphique. Pour vous aider à l’intégrer dans votre flux de travail habituel, nous avons créé un aide-mémoire avec des wget utilisations et syntaxe, y compris un aperçu de son utilisation pour interroger une API. Télécharger Linux wget aide-mémoire ici.

    Source

    La Rédaction

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code