Curl/Wget : Jumeaux ou Gémeaux?

Je ne n’arrive pas à comprendre l’utilité de curl??

Il sert à déposer un fichier ou récupérer un fichier html??

Quel est son utilisation la plus courante?

Est il comparable à wget??

Beaucoup de questions qui restent sans réponses malgré quelques recherches sur le net…

Rien ne vaut l’explication d’un membre de debian-fr.org pour moi !! :violin:

Allez, rien que pour t’embrouiller encore plus, regarde du coté de aria2.

En regardant leurs man :
À première vue, je dirais que curl permet de faire des choses plus poussées qu’avec wget, qui lui sert avant tout à télécharger.
Curl sert aux transferts, de http, ftp à pop telnet ou smtp. Donc c’est à la fois upload et download
curl vient aussi avec une librairie libcurl utilisée par beaucoup de programmes.

Bon tuyau pour aria2 !!

Il s’apparente grandement à wget.

Je comprends les possibilités plus grande de curl, qui ne me serve pas pour l’instant.

En fin de compte, il faut vraiment avoir besoin d’une appli pour en comprendre le principe!! :mrgreen:

curl permet de manipuler réellement le protocole HTTP par exemple, tu peux l’utiliser pour envoyer un questionnaire par exemple (il support le POST). En fait tu peut le considérer comme un binding de la libcurl pour des scripts shell.

Même pour simplement télécharger il a des fonctionnalités particulières que wget n’a pas (tu peut lui donner une expression régulière comme url).

Mis à part ce dernier point wget fait à peut près tout ce qu’il est possible de faire pour téléchaarger un fichier.

Un bref comparatif des fonctionnalités et de la syntaxe

( adaptation et résumé personnels de l’article suivant:
GNU Linux pratique HS35 octobre,novembre 2007, p50-52 )

Comparaison de cURL et wget

TÉLÉCHARGEMENT NON INTERACTIF

En général:

wget:

  • plus facile, récursif[size=85][[pas simplement une arborescence de fichiers, mais les fichiers liés/inclus, comme les liens html, façon googlebot]][/size]
  • développement arrété ( mais solide ! )

cURL:

  • upload
  • plus étendu, bibliothèque
  • pas d’option récursivité

I TÉLÉCHARGEMENT (DOWNLOAD):
wget Téléchargement récursif
wget curl HTTP, HTTPS, FTP
curl FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP, FILE

II TÉLÉEXPÉDITION (UPLOAD)
curl

III BIBLIOTHEQUES
libcurl PHP, PERL,PYTHON, JAVA etc…
(cURL est une interface ligne de commande pour libcurl)


SYNTAXES

TÉLÉCHARGER dans le répertoire courant[size=85][[même nom relatif]][/size]:

wget http://une/url/fichier curl -O http://une/url/fichier # -O == --remote-name

TÉLÉCHARGER AVEC UN NOM DE DESTINATION:

wget -O=./un/nom http://une/url/fichier curl -o ./un/nom http://une/url/fichier # incompatible avec -O

ÉCRASER UN FICHIER PRÉÉXISTANT:
wget n’écrase pas un fichier préexistant: renomme (fichier1 ,fichier2 etc…)

REPRENDRE UN TÉLÉCHARGEMENT INTERROMPU:[size=85][[ ou: chargement réitéré d’un fichier évolutif (log) ]][/size]

wget -c # ou "--continue " curl -C # ou "--continue-at - "

TÉLÉCHARGER PLUSIEURS FICHIERS:

wget http://une/url/fichierA http://une/url/fichierB wget -O -O http://une/url/fichierA http://une/url/fichierB # 2fois -O pour 2 fichiers curl -O -O http://une/url/{fichierA,fichierB} # 2fois -O pour 2 fichiers

MOT DE PASSE EXIGÉ:

wget --user=un_nom --passwd=mot_de_passe curl -u un_nom:mot_de_passe

LIMITER LE DEBIT:

wget --limit-rate=250k curl --limit-rate 250k

FICHIERS DE CONFIGURATION:[size=85][[pour ne pas saisir sans cesse les mêmes options]][/size]

[code]~/.wgetrc
/etc/wgetrc

~/.curlrc
~/.netrc avec l’option --netrc[/code]


TÉLÉCHARGEMENT RÉCURSIF avec WGET:

IMPORTANT:

1 Affichage hors-ligne d’une page html:
Ici, la récursivité de wget ne concerne pas l’arborescence d’un répertoire.
Elle indique la faculté de wget à télécharger les liens inclus dans le fichier demandé ( html en général ).

wget -e robots=off -E -p http:///www.url/fichier.html wget -p : permet d'inclure les fichiers liés ( liens directs de cette page ) wget --page-requisites : permet d'inclure les fichiers liés ( liens directs de cette page )

RÉINCLURE LES RÉPERTOIRES EXCLUS:

[code] wget -e robots=off # réinclus les répertoires “à ne pas indexer” selon robots.txt (parfois:css, images… )

wget -E # ajoute automatiquement .html au nom du fichier (ex index.php devient index.php.html )
wget --html-extension # ajoute automatiquement .html au nom du fichier (ex index.php devient index.php.html )[/code]

2 TÉLÉCHARGEMENT RÉCURSIF
Suivre TOUS les liens, à la façon de googlebot ( 5 niveaux maximum )

wget -r wget --recursive

Suivre TOUS les liens, à la façon de googlebot ( X niveaux maximum )

wget -r -l X wget --recursive -l X
( si X = 1 , plus complet que -p [[size=85][si j’ai bien compris: à explorer]][/size])

wget -r -l inf # niveaux illimités (infinis) DANGER wget -r -np # Ne charge pas les liens de la hiérachie parente wget --recursive --no-parent # Ne charge pas les liens de la hiérachie parente

3 MIROIR

wget -m # équivaut à: -r -N -l inf -nr (ATTENTION!) wget --mirror # équivaut à: -r -N -l inf -nr (ATTENTION!)


Plus:

man wget
http://www.gnu.org/software/wget

man curl
http://curl.haxx.se

man puf / puf -h
( puf est présenté comme un wget qui permet le téléchargement de plusieurs sources en paralléle )