Bir web sitesini örtebilen ve taranan tüm sayfaların listesini düz metin veya benzer biçimde döndürebilen bir komut dosyasına ihtiyacım var; arama motorlarına site haritası olarak göndereceğim. Bir web sitesinin site haritasını oluşturmak için WGET kullanabilir miyim? Yoksa aynı şeyi yapan bir PHP betiği var mı?URL'si verilen bir web sitesinin site haritasını oluşturmak için WGET kullanabilir miyim?
7
A
cevap
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
Bu belirtilen web sitesinde bulunan tüm bağlantılar içeren sedlog.txt
adlı bir dosya oluşturur. Metin dosyası site haritasını XML site haritasına dönüştürmek için PHP veya kabuk betiğini kullanabilirsiniz. Sadece ihtiyacınız olan bağlantıları almak için wget komutunun parametrelerini (kabul et/reddet/dahil et/hariç tut) seçin.
1
Sen hile yapmak için bu Perl kullanabilirsiniz:
+0
Dosya sistemi taranarak oluşturulur, ancak "tarama" yapmayacaktır. Örümcek kurmak istediğim siteler dinamik. –
+1 Bana bir sürü hata (muhtemelen farklı wget/sed sürümleri nedeniyle) veriyormuş gibi kullanamazdım. Ama bir kez ince ayar yaptım, bir çekicilik gibi çalıştı. Teşekkürler! – Julian
'--wait = 1' kullanarak istekler arasında küçük bir gecikme eklemelisiniz, aksi takdirde sitenin performansını etkileyebilir. – Liam