2010-10-16 43 views

Répondre

30
wget --spider --recursive --no-verbose --output-file=wgetlog.txt http://somewebsite.com 
sed -n "[email protected]\+ URL:\([^ ]\+\) .\[email protected]\[email protected]" wgetlog.txt | sed "[email protected]&@\&@" > sedlog.txt 

Cela crée un fichier appelé sedlog.txt qui contient tous les liens trouvés sur le site spécifié. Vous pouvez utiliser PHP ou un script shell pour convertir le sitemap du fichier texte en un sitemap XML. Modifiez les paramètres de la commande wget (accepter/rejeter/inclure/exclure) pour obtenir uniquement les liens dont vous avez besoin.

+0

+1 Je ne pouvais pas vraiment l'utiliser comme ça car il me donnait beaucoup d'erreurs (probablement à cause de différentes versions de wget/sed). Mais une fois que j'ai fait quelques ajustements, cela a fonctionné comme un charme. Merci! – Julian

+2

Vous devez ajouter un petit délai entre les requêtes en utilisant '--wait = 1', sinon cela pourrait affecter les performances du site. – Liam

1

Vous pouvez utiliser ce script Perl pour faire l'affaire:

+0

Il va générer en analysant le système de fichiers, mais ne "crawlera" pas. Les sites que je veux parcourir sont dynamiques. –