Ho bisogno di uno script che possa spider un sito Web e restituisca l'elenco di tutte le pagine sottoposte a scansione in formato semplice o simile; che sottoporrò ai motori di ricerca come sitemap. Posso usare WGET per generare una sitemap di un sito web? O c'è uno script PHP che può fare lo stesso?Posso utilizzare WGET per generare una sitemap di un sito Web data l'URL?
7
A
risposta
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
Questo crea un file chiamato sedlog.txt
che contiene tutti i link presenti sul sito web specificato. È possibile utilizzare PHP o uno script di shell per convertire la sitemap del file di testo in una sitemap XML. Modificare i parametri del comando wget (accept/reject/include/exclude) per ottenere solo i collegamenti necessari.
1
È possibile utilizzare questo script in Perl per fare il trucco:
+0
Genererà tramite scansione del file system ma non "esegue la scansione". I siti che voglio spider sono dinamici. –
+1 Non riuscivo a usarlo in quel modo dato che mi stava dando un sacco di errori (probabilmente a causa di diverse versioni di wget/sed). Ma una volta apportato qualche modifica, ha funzionato come un incantesimo. Grazie! – Julian
Dovresti aggiungere un piccolo ritardo tra le richieste usando '--wait = 1', altrimenti potrebbe influire sulle prestazioni del sito. – Liam