J'utilise le wget
programme, mais je ne veux pas qu'il enregistre le fichier html que je télécharge. Je veux qu'il soit jeté après sa réception. Comment je fais ça?
J'utilise le wget
programme, mais je ne veux pas qu'il enregistre le fichier html que je télécharge. Je veux qu'il soit jeté après sa réception. Comment je fais ça?
Réponses:
Vous pouvez rediriger la sortie de wget vers / dev / null (ou NUL sous Windows):
wget http://www.example.com -O /dev/null
Le fichier ne sera pas écrit sur le disque, mais il sera téléchargé.
Si vous ne souhaitez pas enregistrer le fichier et que vous avez accepté la solution de téléchargement de la page /dev/null
, je suppose que vous utilisez wget pour ne pas obtenir et analyser le contenu de la page .
Si votre besoin réel est de déclencher une action à distance, vérifiez que la page existe, etc. Je pense qu’il serait préférable d’éviter de télécharger la page de corps html.
Jouez avec les wget
options afin de récupérer uniquement ce dont vous avez vraiment besoin, à savoir les en-têtes http, l'état de la demande, etc.
en supposant que vous deviez vérifier que la page est correcte (le statut retourné est 200), vous pouvez effectuer les opérations suivantes:
wget --no-cache --spider http://your.server.tld/your/page.html
Si vous souhaitez analyser les en-têtes renvoyés par le serveur, procédez comme suit:
wget --no-cache -S http://your.server.tld/your/page.html
Reportez-vous à la page de manuel wget pour connaître les autres options pour jouer.
Voir lynx
aussi, comme alternative à wget.
--no-cache
dans la page de manuel, il est indiqué que wget "envoie au serveur distant une directive appropriée (" Pragma: no-cache ") pour obtenir le fichier du service distant"
$ wget http://www.somewebsite.com -O foo.html --delete-after
--delete-after
option est le choix lorsque vous devez télécharger de manière récursive mais que vous souhaitez supprimer le contenu réel.
-O /dev/null
Si vous souhaitez également imprimer dans la console le résultat que vous pouvez obtenir:
wget -qO- http://www.example.com
q
mode silencieux (il n’affiche pas la progression ni d’autres informations), et O-
(écrit le document récupéré sur la console).
Découvrez l'option "-spider". Je l'utilise pour m'assurer que mes sites Web sont en ligne et m'envoyer un courrier électronique s'ils ne le sont pas. Voici une entrée typique de ma crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Pour une boîte * NIX et son utilisation wget
, je suggère de ne pas écrire dans un fichier. J'ai remarqué sur ma boîte Ubuntu 10.04 que wget -O /dev/null
wget avait interrompu les téléchargements après le premier téléchargement.
J'ai également remarqué que wget -O real-file
wget oublie les liens réels sur la page. Il insiste index.html
pour être présent sur chaque page. De telles pages peuvent ne pas toujours être présentes et wget ne se souviendra pas des liens qu’il a vus précédemment.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Notez qu'il n'y a pas d' -O file
option. wget écrira dans le répertoire $ PWD. Dans ce cas, il s’agit d’un système de fichiers tmpfs réservé à la RAM . Ecrire ici devrait éviter le désabonnement du disque (selon l’espace de permutation) ET garder une trace de tous les liens. Cela devrait explorer l'ensemble du site Web avec succès.
Après, bien sûr,
rm --recursive --force /dev/shm/1/*
Utilisez l'option --delete-after, qui supprime le fichier après son téléchargement.
Edit: Oups, je viens de remarquer que cela a déjà été répondu.
Selon la documentation d'aide (wget -h), vous pouvez utiliser l'option --spider pour ignorer le téléchargement (version 1.14).
Download:
-S, --server-response print server response.
--spider don't download anything.
/dev/null
chose fonctionnerait-elle?