# Geçenlerde Kaya aradıydı. Okuldaki tüm çalışanların görevlerini, dahili telefonlarını ve mail adreslerinin yazılı olduğu "table"lardan oluşan sayfalar var.
Ana sayfada soyadların baş harflerine göre ayrılmış listelere link'ler var.
O listeleri içeren sayfalarda da
her çalışan için ayrı bilgi sayfalarına link'ler var. Kaya bana tüm bu sayfalar silsilesinden herkesin adı soyadı, telefon nosu ve mail adreslerini içeren tek bir tablo oluşturup oluşturulamayacağını sordu.
# Ben de "Java da böyle bir şey yapmak mümkün herhalde, çalışır iki hafta içinde yapabilirim sanırım" dedim. Tek network deneyimim bir url'yle bağlantı kurup, UDP protokolüyle veri göndermek olmuştu. Oradan Java'nın hali hazırda muhtelif protokollerde veri gönderip alabileceğini biliyordum.
# Sanırım Kaya'nın daha acelesi vardı, yahut daha kolay yapılmasını bekliyordu ki, "ben sana döneceğim" deyip kapadı.
# Dün ise Barış ve Bahadır'la oktopus kafe'de otururken, Barış'ın Bahadır'ın oynadığı
Travian'ı otomatik oynayan bir bot yazdığı muhabbeti açıldı. Bence zaten yapacağın işi belirleyip, otomatikleştirdikten sonra bot yazmak, mouse'la tıklayarak oynamaktan çok daha zevkli!
# Hali hazırda Ruby'le yazılmış dandik bir bot mevcutmuş. Barış onu epey geliştirmiş. Bahadır'ın istekleri doğrultusunda da geliştirmeye devam ediyor. Ruby dediğin Python gibin bir scripting diliymiş. Url'lere bağlanıp, sayfayı indirip, muhtemelen hali hazırdaki parser'larla link'leri ayrıştırıp, formlara veri girmek vs. Ruby ile kolayca yapılıyormuş.
# Kaya'nın isteği aklıma geldi, ona danıştım. Barış da bana "
webcrawlers" anahtar kelimesini verdi. Zaten daha geçen gün Google'ın botları tarzı tüm internet'i tarayan programların, internet trafiğinin epey bir kısmını işgal ettiklerine dair spekülasyonları yapmıştık Bahadır'la. Bayağı derya muhabbetmiş. Arxiv.org'ta da mesela tüm makaleleri indirmeye çalışan botlara müsamaha göstermeyeceklerine dair uyarılar da dikkatimi çektiydi.
Robots Beware: indiscriminate automated downloads from this site are not permitted.
# Neyse efendim, bir siteden belli pattern'lara uyan verileri derlemeyi sağlayacak hazır bir yazılım var mı diye arandım. Genelde framework'ler, pattern matching, recursive url scanning vs. işlemleri yapan class'ları içeren kütüphaneler vardı.
# Bir de
WebSphinx deyu bir programa denk geldim. Başlangıç url'sini, kaç link derinliğe inileceğini, gelinen yerde ne yapılacağını (sayfaları tek tek kaydetme (save), tüm sayfaları tek bir dosyaya kaydetme (concetenation), sadece belli pattern'lara uyan bölümleri kaydetme (extracting), işaretleme) belirliyorsun. O programla (muhtelif hafıza kullanımı sorunları dışında) rahatlıkla bu tabloyu oluşturabildim. (Türkçe karakterlerden İ ve Ş'de sorun oldu sadece)
# Ama sonra bu listenin muhtelif spam faaliyetlerinde, listeyi teslim edeceğim kişinin ahlaktan yoksunca kendi reklamını yapıp başkasını rahatsız edici şekilde kullanacağını düşünerek Kaya'ya göndermekten vazgeçtim. hehe.
# Şurada da
Java'ynan webcrawler yazmakla ilgili 1998'den kalma eski bir yazı var.