Comment explorer en utilisant wget pour télécharger UNIQUEMENT des fichiers HTML (ignorer les images, css, js)

14

Essentiellement, je veux explorer un site entier avec Wget, mais j'en ai besoin pour ne JAMAIS télécharger d'autres ressources (par exemple, images, CSS, JS, etc.). Je veux seulement les fichiers HTML.

Les recherches Google sont complètement inutiles.

Voici une commande que j'ai essayée:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

Notre site est hybride flat-PHP et CMS. Ainsi, "fichiers" HTML pourrait être /path/to/page, /path/to/page/, /path/to/page.phpou /path/to/page.html.

J'ai même inclus, -R js,cssmais il télécharge toujours les fichiers, puis les rejette (gaspillage inutile de bande passante, de CPU et de charge du serveur!).

Nathan JB
la source
2
quelle commande avez-vous essayé jusqu'à présent? Si la dénomination des fichiers est cohérente, vous devriez pouvoir utiliser l'indicateur -R. Alternativement, vous pouvez utiliser l'indicateur --ignore-tags et ignorer les balises script et img.
ernie
J'ai essayé d'utiliser --accept = html, mais il télécharge les fichiers CSS ALORS les supprime. Je veux les empêcher de télécharger. Une demande d'en-têtes est bien, cependant - Par exemple, je remarque Length: 558 [text/css]sur les fichiers que je ne veux pas. Si je pouvais arrêter la demande si l'en-tête ne revient pas text/html, je serais ravi.
Nathan JB

Réponses:

13

@ Le commentaire d'ernie à propos de --ignore-tagsme conduire sur la bonne voie! Quand je levais les yeux --ignore-tagsdans man, j'ai remarqué --follow-tags.

Réglage --follow-tags=am'a permis de sauter img, link, script, etc.

C'est probablement trop limité pour certaines personnes qui recherchent la même réponse, mais cela fonctionne bien dans mon cas (c'est correct si je manque quelques pages).

Si quelqu'un trouve un moyen d'autoriser l'analyse de TOUTES les balises, mais empêche wgetde rejeter les fichiers uniquement après leur téléchargement (ils doivent rejeter en fonction du nom de fichier ou de l'en-tête Type de contenu avant le téléchargement), j'accepterai très volontiers leur réponse!

Nathan JB
la source
5

qu'en est-il de l'ajout des options:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
Spir
la source