Własny prosty spider za pomocą WGET
W skrócie, jest to dość skutecznie niedziałający link finder. Świetna wiadomość dla każdego, z długoletnim stażem na blogu czy posiadającego CMS taki jak WordPress. Dzięki temu mozesz zaktualizować wszystkie linki do artykułów które zostały umieszczone we wpisach na blogu.
Instalujemy wget:
sudo apt-get install wget
Dla dużych serwisów warto również zaopatrzyć się w screena, aby zachować sesję i powrócić do niej po godzinach pracy naszego spidera:
sudo apt-get install screen
Odpalamy screena:
screen
Tworzymy plik odpalający naszego spidera:
touch ./spider chmod 755 ./spider nano ./spider
I piszemy w pliku:
wget --spider -o ./not-found.log -e robots=off -w 1 -r -E -H -p -nH -nd http://www.example.com
Gdzie:
- –spider – odpala wget w trybie spidera – nie pobiera nic
- -o – wynik zapisywany jest do pliku wyjściowego a nie na ekran jak domyślnie
- -e robots=off – nie bierze pod uwagę dyrektyw z robots.txt
- -w 1 – czeka 1s pomiędzy requestami aby nie zarzynać serwera
- -r – rekursja – będą brane pod uwage wszystkie znalezione linki
- -E – określanie poprawnego rozszerzenia pliku HTML
- -H – podążanie za zewnętrznymi hostami
- -p – będzie brał pod uwagę inne linki, np. obrazy – ponieważ naszym zadaniem jest zebranie informacji o wszelkich odnośnikach które mogą powodować błędy na naszej stronie
- -nH – nie tworzy katalogów dla zewnętrznych hostów
- -nd – nie tworzy katalogów lokalnych
Odpalamy naszego spidera:
sh ./spider
I zachowujemy sesję screena:
[ctrl]-[a] + [d]
Okresowo sprawdzamy jak wygląda postęp:
screen -r tail ./not-found.log -n50 [ctrl]-[a] + [d]
Po zakończeniu, najlepiej grep’em szukamy błędów:
grep -B 2 '404' ./not-found.log