wget ile bir sitenin bütün URL'lerini listelemek

Bazen sadece bir sitenin URL listesine ihtiyacım oluyor. Masaüstü tarayıcısı açmak, proje oluşturmak, ayar yapmak için fazla. wget zaten her sunucuda var.

wget --spider --recursive --level=inf --no-verbose --no-parent \
     --reject-regex '\?(replytocom|share)=' \
     --domains=ornek.com \
     --output-file=tarama.log \
     https://ornek.com/
  • --spider dosyaları indirmiyor, sadece var mı diye bakıyor.
  • --reject-regex sonsuz parametre döngülerine girmemek için şart.
  • --domains dış sitelere çıkmayı engelliyor.

URL listesi

grep -oP '(?<=URL: )\S+' tarama.log | sort -u > urller.txt
wc -l urller.txt

Kırık bağlantılar

grep -B1 "broken link" tarama.log | grep -oP 'https?://\S+' | sort -u

Sınırları

wget JavaScript çalıştırmıyor. JavaScript ile üretilen bağlantıları görmez. Ayrıca robots.txt'ye uyuyor. Kendi sitende tam tarama istiyorsan -e robots=off ekleyebilirsin, ama başkasının sitesinde bunu yapma.

Hızlı bir envanter için bundan daha az zahmetli bir yol bilmiyorum.

Comments / questions

There's no comment section here. If you have a question or want to add something, message me on Telegram or send an email to [email protected]. Thanks!

Related pages