Aspirer un site avec Wget
C’est sur le forum de Cyril qu’un certain saby nous a demandé avec quels logiciels aspirer un site. Je lui a immédiatement parlé de HTTrack Website Copier et de Kiwix. Si j’ai à de nombreuses fois recouru à HTTrack, je n’ai, en revanche, jamais utilisé Kiwix, sauf pour récupérer le contenu complet de Wikipédia.
Mais, il est également tout à fait possible d’aspirer un site avec cURL ou Wget, même si cURL me semble moins approprié pour ce type d’opération. Ces deux logiciels Open Source existent en paquets dans toutes les distributions Linux, de Fedora à Ubuntu en passant par Manjaro et openSUSE. Ils existent également sous Windows :
- Wget pour Windows, une version datant de 2008, un peu vieille ;
- cURL pour Windows.
Utilisation de Wget
J’ai fourni à saby un exemple avec l’aspiration de la documentation française du serveur Web Apache. A l’aide des expressions régulières, j’ai bloqué l’aspiration des pages de documentation des autres langues
wget -k -r -np -U "Mozilla/5.0 (Windows NT 6.1; rv:66.0) Gecko/20100101 Firefox/66.0" -x --keep-session-cookies --no-check-certificate -p -D "httpd.apache.org" --follow-ftp -B "http://httpd.apache.org/docs/current/fr/" -I "/docs/current/fr/" --reject-regex "/(da|de|en|es|ja|ko|pt-br|ru|tr|zh-cn)/" http://httpd.apache.org/docs/current/fr/
Les paramètres de commandes utiles
-q, --quiet quiet (no output) -B, --base=URL resolves HTML input-file links (-i -F) relative to URL --limit-rate=RATE limit download rate to RATE -x, --force-directories force creation of directories --referer=URL include 'Referer: URL' header in HTTP request -U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION --keep-session-cookies load and save session (non-permanent) cookies --no-check-certificate don't validate the server's certificate --no-hsts disable HSTS -r, --recursive specify recursive download -k, --convert-links make links in downloaded HTML or CSS point to local files -p, --page-requisites get all images, etc. needed to display HTML page -A, --accept=LIST comma-separated list of accepted extensions -R, --reject=LIST comma-separated list of rejected extensions --accept-regex=REGEX regex matching accepted URLs --reject-regex=REGEX regex matching rejected URLs -D, --domains=LIST comma-separated list of accepted domains --exclude-domains=LIST comma-separated list of rejected domains --follow-ftp follow FTP links from HTML documents -L, --relative follow relative links only -I, --include-directories=LIST list of allowed directories -X, --exclude-directories=LIST list of excluded directories -np, --no-parent don't ascend to the parent directory