Potrzebuję skryptu, który może łączyć stronę internetową i zwracać listę wszystkich przeszukiwanych stron w formacie zwykłego tekstu lub podobnym; które przekażę wyszukiwarkom jako mapę witryny. Czy mogę użyć WGET do wygenerowania mapy witryny? Czy istnieje skrypt PHP, który może zrobić to samo?Czy mogę użyć WGET do wygenerowania mapy witryny podając jej adres URL?
7
A
Odpowiedz
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
To tworzy plik o nazwie sedlog.txt
który zawiera wszystkie linki znajdujące się na podanej stronie internetowej. Możesz użyć PHP lub skryptu powłoki, aby przekonwertować mapę witryny pliku tekstowego na mapę witryny XML. Zmień parametry komendy wget (akceptuj/odrzuć/dołącz/wyklucz), aby uzyskać tylko potrzebne linki.
1
Można użyć tego skryptu perla rade:
+0
Zostanie wygenerowany przez skanowanie systemu plików, ale nie będzie "przeszukiwany". Strony, które chcę spider, są dynamiczne. –
+1 Nie mogłem tego w pełni wykorzystać, ponieważ dawało mi to mnóstwo błędów (prawdopodobnie z powodu różnych wersji wget/sed). Ale kiedy zrobiłem jakieś poprawki, zadziałało to jak urok. Dzięki! – Julian
Powinieneś dodać małe opóźnienie między żądaniami używając '--wait = 1', w przeciwnym razie może to wpłynąć na wydajność witryny. – Liam