J'essaie de mettre en miroir un site Web à l'aide de wget, mais je ne veux pas télécharger beaucoup de fichiers, j'utilise donc l' --reject
option de wget pour ne pas enregistrer tous les fichiers. Cependant, wget téléchargera toujours tous les fichiers et supprimera ensuite le fichier s'il correspond à mon option de rejet.
Existe-t-il un moyen de dire à wget de ne pas suivre certains liens s'ils correspondent à un joker shell? Si wget ne peut pas faire cela, existe-t-il une autre commande linux commune qui peut le faire?
linux
wget
mirror
mirror-site
Rory
la source
la source
Réponses:
Vous pouvez également essayer HTTrack qui possède, IMO, une logique d'inclusion / exclusion plus flexible et intuitive. Quelque chose comme ça...
Les règles seront appliquées dans l'ordre et remplaceront les règles précédentes ...
la source
On dirait que ce n'est pas possible dans wget
la source
Sous la section --reject de 'man wget':
"Notez que si l'un des caractères génériques, *,?, [Ou], apparaît dans un élément de acclist ou rejlist, il sera traité comme un motif plutôt que comme un suffixe."
Si vous faites cela, vous voudrez peut-être donner des exemples des modèles que vous utilisez et ce que vous pensez devrait correspondre, et ce n'est pas le cas. Vous dites qu'ils correspondent, mais êtes-vous sûr?
Assurez-vous également de mettre cette liste entre guillemets, afin que le shell ne développe pas ces caractères génériques avant de passer les arguments à wget.
Même si votre système n'a pas la version 1.12, lisez la section Types de fichiers du manuel ici . Selon le journal des modifications, le responsable a ajouté quelques mises en garde:
la source
Vous pouvez restreindre le niveau de récursivité avec l'
-l NUMBER
option, si cela aide (ne pas suivre un certain modèle d'expression régulière).Un niveau de "2" télécharge index.html, ses sous-sites / images / etc et les liens sur le sous-site.
la source
comment utilisez-vous wget? essayez de l'utiliser de cette façon:
cette commande ignorera les fichiers gif et jpg et swf.
la source
Une solution de contournement consisterait à exécuter wget via un serveur proxy. Configurez votre proxy pour interdire certains modèles. Cela empêcherait wget de les télécharger en premier lieu.
wget téléchargera et supprimera un fichier qui correspond au modèle -R. il peut également correspondre à des modèles, pas seulement à des extensions ou à des parties de noms de fichiers. Cependant, cela n'empêche pas wget de télécharger en premier et de supprimer plus tard.
httrack a quelques fonctionnalités intéressantes mais d'après mon expérience, la façon dont il enregistre un "fichier" peut être un peu excentrique, par exemple si httrack rencontre index.asp? Type = BASIC & PAGEID = 2234234
il peut l'enregistrer mais vous devez lui dire de conserver le parties de la requête,
par exemple% h% p /% n% [TYPE: @TYPE = ::]% [PAGEID: PAGEID = ::].% t
le @ est un espace réservé pour un point d'interrogation, vous pouvez renommer les fichiers plus tard, ou peut-être échapper à un point d'interrogation à la place? Le problème est que le.% t ajoutera un '.html' à la fin de votre URI qui n'avait pas à l'origine un '.html' Et si vous le supprimez, les images téléchargées par httrack n'auront pas d'extension de fichier.
Mieux vaut utiliser wget IMHO
la source