web-dev-qa-db-fra.com

Pourquoi devrais-je utiliser Wget au lieu d'un navigateur?

Dans quel cas devrais-je préférer utiliser Wget plutôt qu'un navigateur?

J'ai entendu dire que Richard Stallman l'utilise au lieu d'un navigateur pour des raisons d'anonymat. Et que voit le serveur lorsque vous récupérez ses fichiers avec Wget?

15
R S

En règle générale, vous ne l'utiliserez jamais "au lieu d'un navigateur". Les navigateurs rendent le HTML, rendent les liens cliquables (au lieu de copier manuellement l’URL dans une autre commande wget), etc. Il n’ya littéralement aucun avantage à utiliser wget en tant qu’être humain. Si vous êtes préoccupé par la confidentialité, il existe un million de façons de nettoyer un navigateur (ou vous pouvez utiliser un navigateur moins riche en fonctionnalités, comme Lynx si vous voulez vraiment obtenir des barebones sans détruire toute apparence d'interface utilisateur).

Wget est principalement utilisé lorsque vous souhaitez un moyen rapide, bon marché, de script/ligne de commande pour télécharger des fichiers. Ainsi, par exemple, vous pouvez utiliser wget dans un script pour télécharger une page Web fréquemment mise à jour avec de nouvelles données, ce qui ne peut pas vraiment être utilisé par un navigateur. Vous pouvez utiliser les différentes options de wget pour analyser et enregistrer automatiquement un site Web, ce que la plupart des navigateurs ne peuvent pas faire, du moins pas sans extensions.

En bref, les navigateurs sont des applications pour les utilisateurs d'Internet, wget est un outil pour les machines et les utilisateurs expérimentés qui transfèrent des données via HTTP. Très similaire dans ce qu'ils font (extraire des fichiers de sites Web) mais totalement différent dans leur utilisation.

En ce qui concerne les serveurs "voient" quand vous obtenez quelque chose avec wget: tous les clients HTTP (navigateurs, wget, curl, autres applications similaires) transmettent ce qu'on appelle un "agent utilisateur", qui est simplement une chaîne qui décrit le navigateur (ou ces jours-ci, décrit les fonctionnalités du navigateur dont il dispose). Cela peut être utilisé pour afficher différents contenus en fonction du navigateur de l'utilisateur (Google essaie donc de ne pas publier Chrome aux personnes utilisant déjà Chrome). Certains imbéciles tentent de bloquer les manigances des utilisateurs puissants en bloquant la chaîne d'agent utilisateur de wget, mais vous pouvez simplement simuler une chaîne d'agent d'utilisateur Chrome pour contourner ce problème. Le plus souvent, il est simplement utilisé pour les statistiques afin que vous sachiez à quel point les différents navigateurs sont populaires afin de savoir lesquels utiliser pour les tests les plus approfondis.

Si vous utilisez les fonctions d'analyse de wget, le serveur verra de nombreuses requêtes rapides dans un ordre essentiellement alphabétique. C'est un cadeau mortel que vous grattiez leur site. Cela semble totalement différent de la navigation d'un utilisateur. Lorsqu'un utilisateur humain fait des demandes dans un navigateur, chaque demande de page est suivie de toutes les images de cette page, puis il y a un délai, puis une demande pour une autre page aléatoire (ou éventuellement une chaîne de pages avec un objectif clair). .

25
Benny Mackney

Comme d'autres l'ont déjà mentionné, wget présente l'avantage de ne pas être associé à des add-ons, des cookies et du cache, ce qui le rend potentiellement plus stable et sécurisé. Mais les navigateurs et wget ont en fait des utilisations très différentes normales .

wget est un utilitaire de ligne de commande destiné à récupérer du contenu, pas à le présenter. Il peut être utilisé pour extraire et télécharger n'importe quoi via FTP, HTTP et HTTPS, y compris tous types de fichiers (HTML, images, fichiers binaires, etc.).

Pour le serveur, la seule différence qu'il verra est un user agent différent, à moins que vous utilisiez son argument --user-agent pour spécifier un navigateur. Si vous le faites, le serveur ne verra aucune différence.

16
Julie Pelletier

1) téléchargements initiés par un script plutôt que par un être humain

2) télécharger des sites entiers (ou des fragments de sites) plutôt que des pages séparées. (Wget peut automatiquement suivre les liens.)

Wget propose des options de ligne de commande permettant de contrôler ce que le serveur voit et peut penser, notamment des délais arbitraires entre les demandes de téléchargement de pages. Toutefois, si le serveur de site dispose d'une stratégie anti-bot, vous perdez souvent une grande quantité de temps et de trafic avant d'obtenir un résultat acceptable.

5

Lors de l'utilisation d'un navigateur, tout ce qu'il contient est actif, y compris les addons indésirables et même les logiciels malveillants, alors que wget est une simple commande qui télécharge des éléments et ne fait absolument rien d'autre.

Le navigateur n'est pas nécessairement moins sécurisé, mais potentiellement.

Les serveurs "voient" une demande de téléchargement, comme d'habitude.

4
user589808

Le navigateur peut enregistrer vos activités dans l'historique et les fichiers de cache.

wget n'a aucune rétention de mémoire.

Cela dit, un navigateur est plus pratique et je ne me soucie pas de savoir si NSA j'ai téléchargé 4.7.2-040702-generic la semaine dernière. J'utilise mon navigateur pour les transactions bancaires en ligne et Paypal, ce qui est sans doute plus crucial que la majorité des fichiers que je peux télécharger avec wget.

4
WinEunuuchs2Unix

En tant que développeur utilisant des installations distantes d'Ubuntu, il est souvent très inutile d'installer l'interface graphique du système d'exploitation. Dans cet environnement de "ligne de commande", wget est un outil essentiel pour télécharger des fichiers à partir du Web.

Je ne sais même pas quel navigateur, le cas échéant, peut être exécuté depuis un terminal.

2
beterthanlife