Récupération des pages Web à l'aide de WGet, Curl et Lynx

Récupération des pages Web à l'aide de WGet, Curl et Lynx

Que vous soyez un professionnel informatique qui doit télécharger 2000 rapports de bogues en ligne dans un fichier texte plat et les analyser pour voir lesquels ont besoin d'attention, ou une maman qui souhaite télécharger 20 recettes à partir d'un site Web du domaine public, vous pouvez bénéficier de la connaissance du Outils qui vous aident à télécharger des pages Web dans un fichier textuel. Si vous souhaitez en savoir plus sur la façon d'analyser les pages que vous téléchargez, vous pouvez consulter notre manipulation de Big Data pour le plaisir et le profit de l'article 1.

Dans ce tutoriel, vous apprendrez:

  • Comment récupérer / télécharger des pages Web à l'aide de WGet, Curl et Lynx
  • Quelles sont les principales différences entre les outils WGet, Curl et Lynx
  • Exemples montrant comment utiliser WGet, Curl et Lynx
Récupération des pages Web à l'aide de WGet, Curl et Lynx

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Indépendant de la distribution Linux
Logiciel Ligne de commande bash, système basé sur Linux
Autre Toute utilité qui n'est pas incluse dans le shell bash par défaut peut être installée en utilisant Sudo Apt-Get Install Utility-Name (ou Installation de miam pour les systèmes basés sur Redhat)
Conventions # - nécessite que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - exige que les commandes Linux soient exécutées en tant qu'utilisateur régulier non privilégié

Avant de commencer, veuillez installer les 3 utilitaires en utilisant la commande suivante (sur Ubuntu ou Mint), ou utilisez Installation de miam au lieu de Installation apte Si vous utilisez une distribution Linux basée sur Redhat.

$ sudo apt-get install wget curl lynx 


Une fois fini, commençons!

Exemple 1: WGET

En utilisant wget Pour récupérer une page est facile et simple:

$ wget https: // linuxconfig.org / linux-complex-bash-one-liner-Examples --2020-10-03 15: 30: 12-- https: // linuxconfig.org / linux-complex-bash-one-liner-exemples résolvant LinuxConfig.org (LinuxConfig.org)… 2606: 4700: 20 :: 681a: 20d, 2606: 4700: 20 :: 681a: 30d, 2606: 4700: 20 :: ac43: 4b67,… connectant à LinuxConfig.org (LinuxConfig.org) | 2606: 4700: 20 :: 681a: 20d |: 443… connecté. Demande HTTP envoyée, en attente de réponse… 200 OK Longueur: non spécifiée [Texte / HTML] Enregistrement vers: 'Linux-Complex-Bash-One-Liner-Examples' Linux-Complex-Bash-One-Liner-Examples [] 51.98K --.-Kb / s en 0.005S 2020-10-03 15:30:12 (9.90 Mb / s) - 'Linux-Complex-Bash-One-Liner-Examples' Saved [53229] $ 

Ici, nous avons téléchargé un article depuis linuxconfig.org dans un fichier qui est par défaut le même que le nom de l'URL.

Voyons le contenu du fichier

$ file Linux-Complex-Bash-one-liner-Examples Linux-Complex-Bash-One-Liner-Examples: Document HTML, Texte ASCII, avec très longues lignes, avec CRLF, CR, Terminateurs de ligne LF $ HEAD -N5 Linux- complexe-bash-one-liner-exemples      

Super, déposer (l'utilitaire de classification des fichiers) reconnaît le fichier téléchargé comme HTML et le diriger confirme que les 5 premières lignes (-n5) ressembler à du code HTML et sont basés sur du texte.

Exemple 2: Curl

$ curl https: // linuxconfig.org / linux-complex-bash-one-liner-examples> linux-complexe-bash-one-liner-examples% total% reçu% xferd vitesse moyenne temps temps courant dload télécharger total dépensé la vitesse gauche 100 53045 0 53045 0 0 84601 0 -:: -: - -: -: - -: -:: - 84466 $ 

Cette fois, nous avons utilisé boucle faire de même que dans notre premier exemple. Par défaut, boucle sortira à la standard (stdout) et afficher la page HTML dans votre terminal! Ainsi, nous redirigeons plutôt (en utilisant >) au fichier Linux-Complex-Bash-One-Liner-Examples.

Nous confirmons à nouveau le contenu:

$ file Linux-Complex-Bash-one-liner-Examples Linux-Complex-Bash-One-Liner-Examples: Document HTML, Texte ASCII, avec très longues lignes, avec CRLF, CR, Terminateurs de ligne LF $ HEAD -N5 Linux- complexe-bash-one-liner-exemples      


Super, le même résultat!

Un défi, lorsque nous voulons traiter ce / ces fichiers davantage, est que le format est basé sur HTML. Nous pourrions analyser la sortie en utilisant sed ou awk Et une expression régulière semi-complexe, pour réduire la sortie en texte uniquement, mais cela est quelque peu complexe et souvent pas suffisamment étanche aux erreurs. Au lieu de cela, utilisons un outil qui a été compatible nativement / programmé pour vider les pages dans le format de texte.

Exemple 3: Lynx

Lynx est un autre outil que nous pouvons utiliser pour récupérer la même page. Cependant, contrairement wget et boucle, Lynx est censé être un navigateur complet (basé sur le texte). Ainsi, si nous sortions de Lynx, La sortie sera du texte, et non HTML, basé. Nous pouvons utiliser le lynx -dump commande pour sortir la page Web accessible, au lieu de démarrer un navigateur entièrement interactif (basé sur le test) dans votre client Linux.

$ lynx -dump https: // linuxconfig.org / linux-complex-bash-one-liner-Examples> Linux-complex-bash-one-liner-Examples $ 

Examinons à nouveau le contenu du fichier créé:

$ file Linux-Complex-Bash-one-liner-Examples Linux-Complex-Bash-One-Liner-Examples: UTF-8 Unicode Text $ Head -n5 Linux-Complex-Bash-One-Liner-Examples * [1] Ubuntu + o [2] dos o [3] Ubuntu 20.04 o [4] Ubuntu 18.04 

Comme vous pouvez le voir, cette fois nous avons un UTF-8 Unicode Fichier textuel, contrairement au précédent wget et boucle exemples, et le diriger La commande confirme que les 5 premières lignes sont basées sur du texte (avec des références aux URL sous la forme de [nr] Marqueurs). Nous pouvons voir l'URL vers la fin du fichier:

$ Tail -N86 Linux-Complex-Bash-One-Liner-Examples | tête -N3 liens visibles 1. https: // linuxconfig.org / ubuntu 2. https: // linuxconfig.org / linux-complex-bash-one-liner-exemples 

La récupération des pages de cette manière nous offre un grand avantage d'avoir des fichiers textuels sans HTML que nous pouvons utiliser pour traiter davantage si cela est nécessaire.

Conclusion

Dans cet article, nous avons eu une courte introduction au wget, boucle et Lynx Outils, et nous avons découvert comment ce dernier peut être utilisé pour récupérer les pages Web dans un format textuel supprimant tout le contenu HTML.

S'il vous plaît, utilisez toujours les connaissances acquises ici de manière responsable: veuillez ne pas surcharger les sites Web, et récupérer uniquement le domaine public, sans Copyright ou CC-0, etc. données / pages. Assurez-vous également toujours de vérifier s'il existe une base de données / ensemble de données téléchargeable des données qui vous intéressent, qui est très préférée à la récupération de pages Web individuellement.

Profitez de vos nouvelles connaissances trouvées et, maman, dans l'attente de ce gâteau pour lequel vous avez téléchargé la recette en utilisant lynx - dump! Si vous plongez dans l'un des outils plus loin, veuillez nous laisser un commentaire avec vos découvertes.

Tutoriels Linux connexes:

  • Manipulation de Big Data pour le plaisir et le profit Partie 1
  • Manipulation des mégadonnées pour le plaisir et le profit Partie 3
  • Manipulation de Big Data pour le plaisir et le profit Partie 2
  • Choses à installer sur Ubuntu 20.04
  • Téléchargement du fichier WGET sur Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Télécharger le fichier en boucle sur Linux
  • Choses à installer sur Ubuntu 22.04
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?