it-swarm-eu.dev

Faire en sorte que `wget` ne sauvegarde pas la page

J'utilise le programme wget, mais je veux qu'il n'enregistre pas le fichier html que je télécharge. Je veux qu'il soit jeté après sa réception. Comment je fais ça?

69
Ram Rachum

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é.

85
Evan Anderson

Si vous ne souhaitez pas enregistrer le fichier et que vous avez accepté la solution de téléchargement de la page dans /dev/null, Je suppose que vous utilisez wget pour ne pas obtenir et analyser le contenu de la page .

Si votre véritable besoin est de déclencher une action à distance, vérifiez que la page existe et ainsi de suite, je pense qu'il vaut mieux éviter de télécharger la page de corps html du tout.

Jouez avec les options wget afin de récupérer uniquement ce dont vous avez vraiment besoin, c'est-à-dire les en-têtes http, l'état de la demande, etc.

  • en supposant que vous devez vérifier que la page est correcte (c'est-à-dire que le statut renvoyé 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
    

Voir page de manuel wget pour d'autres options avec lesquelles jouer.
Voir aussi lynx , comme alternative à wget.

33
drAlberT

$ wget http://www.somewebsite.com -O foo.html --delete-after

17
al.

Si vous souhaitez également imprimer dans la console le résultat que vous pouvez faire:

wget -qO- http://www.example.com
15
SCL

Une autre alternative consiste à utiliser un outil comme curl, qui par défaut renvoie le contenu distant vers stdout au lieu de l'enregistrer dans un fichier.

9
natacado

Découvrez l'option "-spider". Je l'utilise pour m'assurer que mes sites Web sont en place et m'envoyer un e-mail s'ils ne le sont pas. Ceci est une entrée typique de mon crontab:

46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
4
Paul Tomblin

Si vous devez explorer un site Web à l'aide de wget et que vous souhaitez réduire le taux de désabonnement du disque ...

Pour une boîte * NIX et en utilisant wget, je suggère de sauter l'écriture dans un fichier. J'ai remarqué sur ma boîte Ubuntu 10.04 que wget -O /dev/null a provoqué l'annulation des téléchargements par wget après le premier téléchargement.
J'ai également remarqué que wget -O real-file fait oublier à wget les liens réels sur la page. Il insiste sur un index.html être présent sur chaque page. Ces pages peuvent ne pas toujours être présentes et wget ne se souviendra pas des liens qu'il a vus précédemment.

Pour explorer sans écrire sur le disque, le meilleur que j'ai trouvé est le suivant

 mkdir /dev/shm/1   
 cd /dev/shm/1
 wget --recursive --relative --no-parent ...

Notez qu'il n'y a pas de -O file option. wget écrira dans le répertoire $ PWD. Dans ce cas, il s'agit d'un système de fichiers RAM uniquement tmpfs . L'écriture ici devrait contourner le désabonnement du disque (en fonction de l'espace d'échange) ET garder une trace de tous les liens. Cela devrait explorer correctement l'ensemble du site Web.

Après, bien sûr,

 rm --recursive --force /dev/shm/1/*
3

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.

2
John Gardeniers

Selon le document 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.

0
rocky qi