Grattez le site Web multi-images
Question
Je vérifie notre application Web existante, qui utilise beaucoup les cadres HTML . J'aimerais télécharger tout le code HTML de chaque cadre. Existe-t-il une méthode permettant de le faire avec wget ou un peu de script?
La solution
en complément de la réponse de Steve:
Transférer sur n'importe quel hôte & # 8212; & # 8216; -H & # 8217;
Le & # 8216; -H & # 8217; Cette option active l’étalement des hôtes, ce qui permet à l’exécution récursive de Wget de visiter n’importe quel hôte référencé par un lien. À moins que des critères suffisants limitant la récursivité ne soient appliqués, ces hôtes étrangers se lieront généralement à encore plus d'hôtes, et ainsi de suite jusqu'à ce que Wget obtienne beaucoup plus de données que prévu.
Limiter l'étendue à certains domaines & # 8212; & # 8216; -D & # 8217;
Le & # 8216; -D & # 8217; Cette option permet de spécifier les domaines à suivre, limitant ainsi la récursivité aux hôtes appartenant à ces domaines. De toute évidence, cela n’a de sens que conjointement avec & # 8216; -H & # 8217 ;.
Un exemple typique serait de télécharger le contenu de & # 8216; www.server.com & # 8217 ;, mais d'autoriser les téléchargements de & # 8216; images.server.com & # 8217 ;, etc.:
. wget -rH -Dserver.com http://www.server.com/
Vous pouvez spécifier plusieurs adresses en les séparant par une virgule,
par exemple. -Ddomaine1.com, domain2.com & # 8217 ;.
extrait de: manuel wget
Autres conseils
wget --recursive --domains=www.mysite.com http://www.mysite.com
Ce qui indique qu’une analyse récursive doit également se déplacer dans les cadres et les iframes. Veillez à limiter la portée de la récursivité uniquement à votre site Web, car vous ne voulez probablement pas explorer tout le Web.
wget a une option -r pour le rendre récursif, essayez wget -r -l1 (au cas où la police rendrait la lecture difficile: cette dernière partie est une minuscule L suivie d'un nombre un) La partie -l1 lui dit de récidiver à une profondeur maximale de 1. Essayez de jouer avec ce nombre pour en récolter plus.