J'ai besoin d'un script qui peut spider un site Web et retourner la liste de toutes les pages crawlées au format texte brut ou similaire; que je soumettrai aux moteurs de recherche comme sitemap. Puis-je utiliser WGET pour générer un sitemap d'un site Web? Ou y a-t-il un script PHP qui peut faire la même chose?Puis-je utiliser WGET pour générer un sitemap d'un site Web avec son URL?
7
A
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.
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. –
+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
Vous devez ajouter un petit délai entre les requêtes en utilisant '--wait = 1', sinon cela pourrait affecter les performances du site. – Liam