samedi 9 mars 2013

#Wget #telechargement

Sauvegarder une page html et conversion en pdf :
wget $URL | htmldoc --webpage -f "$URL".pdf - ; xpdf "$URL".pdf &
Sauvergarde uniquement les zip et pdf d'un site : 
wget --reject html,htm --accept pdf,zip -rl1 url
ou si est en mode securisé 
wget --reject html,htm --accept pdf,zip -rl1 --no-check-certificate https-url
Sauvegarde des pdf :
wget -r -l16 -A.pdf -e robots=off http://www.framabook.org/
Sauvegarde des JPG : (sans thumbnails/miniatures)
wget -r -l5 -k -nc -E -A .jpg -R thumbbig-*.jpg thumb-*.jpg
Test si un fichier existe : 
wget --spider -v http://www.server.com/path/file.ext
Télécharger une archive directement décompréssée : 
wget -qO - "http://www.tarball.com/tarball.gz" | tar zxvf -
Télécharge tout un site : 
wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
Pour avoir son adresse IP externe :
wget http://cmyip.com -qO - | grep -Ewo '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' | uniq
ou
wget www.whatismyip.com/automation/n09230945.asp -O - -o /dev/null
ou
wget -q -nd http://www.biranchi.com/ip.php; echo "Your external ip is : `cat ip.php`"
Telecharger video Youtube :
wget http://www.youtube.com/watch?v=dQw4w9WgXcQ -qO- | sed -n "/fmt_url_map/{s/[\'\"\|]/\n/g;p}" | sed -n '/^fmt_url_map/,/videoplayback/p' | sed -e :a -e '$q;N;5,$D;ba' | tr -d '\n' | sed -e 's/\(.*\),\(.\)\{1,3\}/\1/' | wget -i - -O surprise.flv
Eteindre quand les téléchargements son terminés :
for ((;;)) do pgrep wget ||shutdown -h now; sleep 5; done
$ wget \
--recursive \
--no-clobber \
--page-requisites \
--html-extension \
--convert-links \
--restrict-file-names=windows \
--domains it.wikipedia.org \
--no-parent \
  • --recursive: télécharger l'ensemble du site.
  • --domains it.wikipedia.org: tout sauf ce qui est en dehors du domaine défini
  • --no-parent: le fait de ne pas suivre les liens en dehors du répertoire du jeu à / wiki / Ubuntu-page-requis: pour recueillir tous les éléments qui composent la page (images, CSS, etc.)
  • --html-extension: Enregistrez le fichier avec. html.
    - convert-links: convertir les liens de manière à permettre la navigation hors connexion.
  • --restrict-file-names=windows: changer les noms de fichiers pour être compatible avec Windows.
  • --no-clobber: ne pas écraser les fichiers existants (utilisés dans le cas où vous souhaitez continuer un téléchargement interrompu)

La commande

wget --mirror -p --html-extension --convert-links -e robots=off -P . http://url-to-site

Les paramètres

  • --mirror : active la récursivité
  • -p : télécharge également les fichiers liés (scripts, feuilles de styles…)
  • --html-extension : ajoute .html aux fichiers pour qu’ils soient bien associés à l’ouverture dans un navigateur après téléchargement
  • --convert-links : réécrit les URLs vers les fichiers téléchargés au lieu des URLs absolues en live. Attention ça n’est pas infaillible, un rechercher-remplacer reste nécessaire (notamment pour les commentaires conditionnels, le path des images dans les CSS, etc)
  • -e robots=off : demande à wget de ne pas tenir compte du fichier robots.txt du site (et c’est mal !)
  • -P . : indique dans quel répertoire enregistrer les fichiers (« . » correspond au dossier courant)
  • http://url-to-site : adresse du site 

Rapatrier un site web entier en UNE ligne de commande :
wget -r -l5 -k -E "http://www.l_adresse_du_site.a_recuperer.com"
Explication :
-r : récursif sur le site
-l5 : cinq niveaux de récursion au maximum
-k : convertir les destinations des liens pour une lecture locale
-E : convertir les types de fichier au format HTML (pour éviter que la lecture de sites en PHP ne foire en lecture sous Firefox).
Limitations
Ce tutoriel ne marchera pas sur tous les sites (par exemple les sites dont une partie du contenu est générée par du Javascript ou en AJAX, ou grâce à Flash). wget suivra uniquement les liens dans les sources html des pages web.
---------
Pour aller plus loin.
Si vous voulez plus d’options, la page de manuel de wget est pleine d’infos utiles, voici des options très intéressantes :
-t : spécifier combien de fois que wget devrait essayer de télécharger chaque fichier.
-w : spécifier combien de temps attendre entre les essais
-c : demander à wget de continuer un téléchargement interrompu.
-T : spécifier au bout de combien de secondes sans réponse wget abandonne une connexion
--limit-rate : mettre une vitesse de connexion maximale pour ne pas monopoliser votre bande passante
-Q : limiter la place que prendront tous les fichiers téléchargés, pour ne pas trop remplir votre disque dur. Dès qu’à la fin d’un téléchargement le quota sera dépassé, wget s’arrêtera
--load-cookies : importer des cookies (pratique pour les sites où vous devriez être authentifié)
-X : exclure un répertoire
---------
Je veux les sources des fichiers PHP
Ce n’est possible que si vous gérez le site web. Si vous avez un accès en FTP aux fichiers, utilisez curlftpfs ou alors lftp comme ceci : (exemple avec ftpperso.free.fr)
1. Créez un fichier .netrc dans votre répertoire personnel, contenant les informations suivantes :
machine ftpperso.free.fr login votre_login_sur_le_serveur_ftp password votre_mot_de_passe_sur_le_serveur_ftp
2. Tapez « chmod 400 ~/.netrc » pour que le fichier ne soit lisible que par vous.
3. Positionnez-vous dans le répertoire où rapatrier votre site, tapez « lftp ftpperso.free.fr » ; vous aurez un prompt du genre « lftp votre_login_sur_le_serveur_ftp@ftpperso.free.fr:~> » : tapez
mirror . .
C’est bon. Quand lftp aura tout fini, tapez « exit » ou Ctrl-D.
Autre solution :
wget -c -r -np -k -p [adresse_du_site]
  • L’attribut -c permet de continuer le téléchargement d’un fichier en cas de coupure de connexion internet.
  • L’attribut -r permet d’effectuer un téléchargement récursif du site internet tout en conservant son arborescence.
  • L’attribut -np (no parent) empêche wget de télécharger les répertoires parents du répertoire actuel.
  • L’attribut -k convertit les liens pour une consultation locale.
  • L’attribut -p télécharge tout les fichiers nécessaires au bon affichage de la page web.
Ex / Que les pages commençants par 'man' :
wget --recursive -l inf --page-requisites --wait=1 --random-wait --accept "man*" http://www.nomdusite.com


wget -rkpE <uri>

-r : récursif
-k : converti les liens en liens locaux
-p : télécharge tous les fichiers nécéssaires à l'affichage de la page en local
-E : modifie les extensions des pages Web en .html

Aucun commentaire:

Enregistrer un commentaire

Archives du blog