wget

Archive statique HTML
 wget -r -m -k -E -np --limit-rate=100k https://site-aspired.com
 wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz

source: https://chispa.fr/sima78/index.php?post/2018/11/14/Wget-%E2%80%93-Aspirer-un-site-n%E2%80%99est-pas-un-crime

si ça ne marche pas, utiliser httrack (cf infra)

Options:
-c  --continue

--force-html
-F
--force-html
    Lorsque l'entrée est lue depuis un fichier, force Wget à le considérer comme un fichier HTML. Cela vous permet de rapatrier les liens relatifs depuis un fichier HTML de votre disque local, en ajoutant <base href="url"> au HTML, ou en utilisant l'option de ligne de commande --base. 
-B URL
--base=URL
    Utilisé en conjonction avec -F, préfixe les liens relatifs avec URL dans le fichier spécifié par -i. 


--spider
    Lorsqu'il est invoqué avec cette option, Wget se comportera comme une araignée, sur la toile, il ne téléchargera pas les pages, il vérifiera simplement leur présence. Vous pouvez l'utiliser pour vérifier vos signets par exemple

            wget --spider --force-html -i bookmarks.html

--quota=quota
    Spécifie le quota de données pour les téléchargements automatiques. La valeur peut être spécifiée en octets (défaut), kilooctets (suffixe k), ou mégaoctets (avec le suffixe m).

-E
--html-extension
    Si un fichier de type application/xhtml+xml ou texte/html est téléchargé et que l'URL ne se termine par l'expression régulière \.[Hh][Tt][Mm][Ll]?, cette option provoque l'ajout du suffixe .html au nom de fichier local. C'est pratique, si vous êtes en train de répliquer un site distant qui utilise des pages .asp, mais vous voulez que les pages répliques soient visibles sur votre serveur Apache. 

--http-user=utilisateur
--http-passwd=mot-de-passe

-k
--convert-links
    Une fois que le téléchargement est terminé, convertit les liens du document pour qu'il soit consultable en local

-A accliste --accept accliste
-R rejliste --reject rejliste
    spécifie la liste (avec la virgule comme séparateur) des suffixes ou modèles de noms de fichiers qui doivent être acceptés ou rejetés.

.
    Si vous voulez juste télécharger une URL. Tapez juste :

            wget http://fly.srk.fer.hr/

.
    Mais que se passera-t-il si la connexion est lente et le fichier gros ? La connexion sera probablement interrompue avant que l'intégralité du fichier ne soit rapatriée. Dans ce cas, Wget essayera de re-télécharger le fichier jusqu'à ce qu'il y arrive ou qu'il dépasse le nombre de tentatives par défaut (c'est-à-dire 20). Il est facile de changer le nombre de tentatives par 45, pour s'assurer que l'intégralité du fichier arrivera :

            wget --tries=45 http://fly.srk.fer.hr/jpg/flyweb.jpg

.
    Maintenant laissons Wget travailler en arrière-plan, et écrire sa progression dans le fichier de log. C'est fatigant de taper --tries, aussi nous utiliserons -t.

            wget -t 45 -o log http://fly.srk.fer.hr/jpg/flyweb.jpg &

    L'esperluette à la fin de la ligne envoie Wget à l'arrière plan. Pour avoir un nombre infini de tentatives, utilisez -t inf. 
.
    L'usage du FTP est aussi simple. Wget tiendra compte du login et du mot de passe.

            wget ftp://gnjilux.srk.fer.hr/welcome.msg

.
    Si vous spécifiez un répertoire, Wget téléchargera l'inventaire du répertoire et le transformera en document HTML. Essayez :

            wget ftp://prep.ai.mit.edu/pub/gnu/
            links index.html
    Vous avez un fichier qui contient les URL que vous voulez télécharger, utiliser l'option -i :

            wget -i <file>

    Si vous spécifiez « - » comme nom de fichier, les URL seront lues depuis l'entrée standard. 
.
    Créer une image miroir de profondeur 5 du site web de GNU, avec la même structure de répertoire que l'original, avec un seul essai par document, et en sauvegardant le log des activités dans gnulog :

            wget -r http://www.gnu.org/ -o gnulog


.
    Même chose que ci-dessus mais en convertissant les liens dans les fichiers HTML pour pointer vers des fichiers locaux, pour que vous puissiez les consulter hors-ligne :

            wget --convert-links -r http://www.gnu.org/ -o gnulog


.
    Télécharger une seule page HTML, mais en étant sûr que tous les éléments nécessaires à son affichage, tels que les images incluses et les feuilles de styles externes seront aussi téléchargées. Et s'assurer aussi que la page téléchargée référence les liens téléchargés.

            wget -p --convert-links http://www.server.com/dir/page.html

    La page HTML sera sauvegardé dans www.server.com/dir/page.html, et les images, feuilles de styles, etc, quelque part dans www.server.com/, en fonction de l'endroit où elles étaient sur le serveur distant. 
.
    Même chose que ci-dessus, mais sans créer le répertoire www.server.com/. En fait, je ne veux pas de tous ces noms de répertoires aléatoires du serveur, je veux juste sauvegarder tous les fichiers dans le sous-répertoire download/ du répertoire courant.

            wget -p --convert-links -nH -nd -Pdownload \
                 http://www.server.com/dir/page.html

.
    Télécharger le fichier index.html de www.linuxfr.org, en affichant les en-têtes originaux du serveur :

            wget -S http://www.linuxfr.org/

.
    Enregistrer les en-têtes du serveur, peut-être pour un traitement ultérieur.

            wget -s http://www.linuxfr.org/
            more index.html


.
    Télécharger les deux premiers niveaux de wuarchive.wustl.edu, et les mettre dans /tmp.

            wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/

.
    Vous voulez télécharger tous les images GIF d'un répertoire depuis un serveur HTTP. Vous avez essayé wget http://www.server.com/dir/*.gif, mais ça ne fonctionne pas car le téléchargement HTTP ne gère pas l'expansion de nom. Dans ce cas, utilisez :

            wget -r -l1 --no-parent -A.gif http://www.server.com/dir/

    Explication : -r -l1 signifie téléchargement récursif, jusqu'à la profondeur 1. --no-parent signifie que les références au répertoire parent sont ignorées et -A.gif signifie de ne télécharger que les fichiers GIF. -A "*.gif" marche aussi. 
.
    Supposons que vous étiez au milieu d'un téléchargement, et que Wget a été interrompu. Maintenant vous voulez remplacer les fichiers déjà présents Ce sera :

            wget -nc -r http://www.gnu.org/

.
    Si vous voulez encoder votre nom d'utilisateur et votre mot de passe pour HTTP ou FTP, utilisez la syntaxe URL appropriée :

            wget ftp://mon_nom:mot_de_passe@unix.server.com/.emacs

.
    Vous voulez rediriger la sortie des documents sur la sortie standard au lieu des fichiers :

            wget -O - http://jagor.srce.hr/ http://www.srce.hr/

    Vous pouvez aussi combiner les deux options et fabriquer des pipelines pour télécharger des documents référencé par un autre site.

            wget -O - http://cool.list.com/ | wget --force-html -i -


 
    Si vous voulez que Wget conserve la réplique d'une page (ou de sous-répertoire FTP ), utilisez --mirror (-m), qui est le raccourci pour -r -l inf -N. Vous pouvez mettre Wget dans le fichier crontab pour lui demander de revérifier le site chaque dimanche :

            crontab
            0 0 * * 0 wget --mirror http://www.gnu.org/ -o /home/me/weeklog


.
    En plus de ci-dessus, vous désirez convertir les liens pour la consultation locale. Mais après avoir lu ce manuel, vous savez que la conversion de lien ne gère pas bien l'estampille temporelle, aussi vous désirez que Wget conserve une copie des fichiers HTML avant conversion. L'invocation de Wget ressemblera à :

            wget --mirror --convert-links --backup-converted  \
                 http://www.gnu.org/ -o /home/me/weeklog


.
    Mais vous avez aussi remarqué que la consultation locale ne fonctionne pas du tout quand les fichiers HTML sont sauvegardés avec d'autres extensions que .html, peut-être parce qu'ils ont été envoyés sous le nom index.cgi. Aussi, vous voudriez que Wget renomme les fichiers avec content-type text/html et le nom nom.html.

            wget --mirror --convert-links --backup-converted \
                 --html-extension -o /home/me/weeklog        \
                 http://www.gnu.org/

    Ou, en abrégé :

            wget -m -k -K -E http://www.gnu.org/ -o /home/me/weeklog


  

/etc/wgetrc
    Emplacement par défaut du fichier de démarrage global. 
.wgetrc
    Fichier de démarrage de l'utilisateur. 

Concaténer

Si on veut tout concaténer dans un seul fichier:

wget -r -np http://xxx -O resultfile.html

Archive statique HTML

Si on veut transformer un site dynamique (php+mysql p. ex.) en un site statique, p. ex. pour une archive

wget -mk http://votresite.org

httrack

Voir aussi httrack

 httrack http://LOCAL_URI -O . -N "%h%p/%n/index%[page].%t" -cWqQ%v --robots=0

puis

 find . -name "*.html" -type f -print0 |   xargs -0 perl -i -pe "s/\/index.html/\//g"

source: cet excellent article sur un archivage drupal, https://www.lullabot.com/articles/sending-a-drupal-site-into-retirement

Un petit script tout en un pour faire:

#!/usr/bin/bash
#author: fradeff@akademia.ch, https://radeff.red/dokuwiki/info:wget
echo "Create static website"
echo "URL of the website"
read url
httrack $url -O . -N "%h%p/%n/index%[page].%t" -cWqQ%v --robots=0
find . -name "*.html" -type f -print0 |   xargs -0 perl -i -pe "s/\/index.html/\//g"
echo "Finished!"

Voir aussi

https://www.httrack.com/html/filters.html

http://konradpodgorski.com/blog/2013/10/20/how-to-recursively-download-an-entire-website-using-wget/

  • info/wget.txt
  • Dernière modification: 2018/11/29 09:16
  • par radeff