Google Sonuçlarını Almak (Spider Kod Yazımı)
Arkadaşlar bu yazıyı yazmak elbette çok zahmetli olacak. Başlarda acaba 2 veya 3 parça şeklinde mi yazsam diye düşündüm. Ama daha sonra tek bir yazıda (ki muhtemelen çok uzun bir yazı olacak) bu bilgileri paylaşmak istedim. Bu yazım birçok kişinin para kazanmak amaçlı veya bilgileri çalıp kullandığı Spider kod yazma tekniğidir. Bazı arkadaşlar yazımı uzun bulabilirler. Fakat benim genel olarak çalıştığım yöntem bu şekildedir.
Peki Spider İle Neler Yapabiliriz ?
Büyük indirme sitelerinin veritabanlarını çalarak kendiniz bir arşiv oluşturabilirsiniz. (Örnek: www.frmdownload.com) Frmdownload.Com aslında benim uzun zamandır aklımda olan bir projeydi. Projenin amacı büyük indirme sitelerinin programlarını alıp, tek bir sitede kullanmaktı. Dersler, sınavlar derken siteyle uğraşamadım. Sadece inndir.com ve tamindir.com sitelerinin programlarını alabildim.
Sizinde tahmin ettiğiniz gibi verilerin arşivlenmesi için çok uzun bir zaman ve zahmet gerekmektedir. Tüm verileri çekmek 2Mbit bağlantıda 2 gün sürdü. Toplamda bu iki siteden 6 gblık bilgi indirdim. Her bir sayfa 100Kb ile 800Kb olduğunu düşünürseniz binlerce sayfada dolaştığını anlayabiliyoruz. Burada, google'da ki sayfa sayısını görebilirsiniz.
Spider ile ;
- Başka sitelerin sayfa bilgilerini alabilirsiniz.
- Sitelerin genel çalışma algoritmasını çözerseniz, tüm siteyi istediğiniz gibi kullanabilirsiniz. (FrmDownload.Com gibi)
- Winamp Shoutcast ile radyo bilgilerini alıp, sayfanıza entegre edebilirsiniz. (Sayfanızda Çalan Şarkı, Şarkı Uzunluğu, Önceki Şarkı gibi bilgileri gösterebilirsiniz)
Bunun gibi yaratıcılığa bağlı olarak örnekleri çoğaltmamız mümkündür.
Bu Yazının Amacı Ve Kazanımlar
Bu yazının amacı; Google'da arama sonuçları sonrası çıkan verileri, alabilmek ve istediğimiz bir yerde kullanabilmek. Yazı sonunda bir web sayfasınından veri nasıl çekilir, çekilen verilerin içinden kodlar nasıl alınır ve bunları düzenli bir şekilde nasıl elde edebiliriz gibi konularda bilgi sahibi olacaksınız.
Çok uzattık artık kodlamaya gelelim.
Amacımız herhangi bir arama sonrasında (ehocam.com örnek amaçlı) çıkan sonuçları almak.
Yani ;
N tane sonucumuzdan1. olanın başlığını, site linkini ve google'da çıkan kısa metnini,
2. olanın başlığını, site linkini ve google'da çıkan kısa metnini
...
N. olanın başlığını, site linkini ve google'da çıkan kısa metnini
elde edebilmek
![]()
Ana fonksiyonlarımız 3 tanedir. Bu kodları nerden bulduğumu, düzenleyip düzenlemediğimi gerçekten hatırlamıyorum. Yazan arkadaşın ellerine sağlık.
- Fonksiyon fonkXmlHttp
Bu fonksiyon xml yardımı ile istediğimiz sayfanın html kodlarını bize getirecek. Kullanımı fonkXmlHttp(siteurl)Dim TumVeri TumVeri = fonkXmlHttp("http://www.google.com.tr/search?hl=tr&q=Ehocam.Com") - Fonksiyon fonkStream
Bu fonksiyon ise, fonkXmlHttp ile aldığımız kodları, istediğimiz karakter formatına dönüştürüyor. Örneğin alınan verileri UTF8 şeklinde kullanmak isteyebiliriz. - Fonksiyon fonkVeriCek
En fazla kullanacağımız fonksiyon budur. Bu fonksiyon gelen html kodların içerisinde, seçilen blok aralıklarını bize veren fonksiyondur. KullanımıfonkVeriCek(HtmlKodlar, BaşlamaEtiketi, BitişEtiketi)
Biraz kasma zamanı geldi. Google'nin algoritmasını çözelim hemen.
Yapmamız gereken birinci kural amacımızı belirlemek olacaktır. (Saat sabahın 03:02 si. Bende ki fanteziye bak yahu
)
Hemen C:InetpubwwwrootGoogle altına default.asp dosyamı oluşturuyorum.
Default.asp dosyamın en başına yukarıda bahsettiğim 3 adet fonksiyonumu ekliyorum. (Yeni dosyama buradan ulaşabilirsiniz. )
Blok aralıklarını belirlemeden önce, tüm veriyi bir değişkende toplayalım. Bunun için fonkXmlHttp fonksiyonumuzu kullanmamız lazım. Arama yapacağımız sözcük veya kelime aşağıda kırmızı kutucuktaki yere yazılacak.
<%
TumVeri = fonkXmlHttp("http://www.google.com.tr/search?hl=tr&q=Ehocam.Com")
%>
Yeni dosyamıza buradan ulaşabilirsiniz.
Elimizde şu an arama sonucunun html kodları bulunmaktadır. Burada almak istediğimiz değeri, genelden özele prensibinde olduğu gibi, en dıştan en içe doğru eleme yoluyla elde edeceğiz.
Gördüğünüz gibi çok karmaşık bir sistem ortaya çıkıyor. Keşke elimden gelsede nasıl bulduğumu aşama aşama anlatsam. Fakat o kudreti kendimde şu an göremiyorum. Projeyi özelleştirip ekran görüntüsünü ekliyorum. Projenin Vb.Net ve Asp ile yapılmış şekillerine aşağıdaki linkten ulaşabilirsiniz.
GoogleBot - Asp (101)
VisualBasic Spider Kodlari (112)




April 19th, 2009 - 04:03
HATA: Sonuçların hepsini yazı olarak düşündüğümden kodları ona göre ayarlamıştım. Fakat sonuçlarda video veya resim çıktığında kodlar çalışmıyor. Bu kodları lütfen domain sorgulaması yaparken uygulayın. Mesela ntvmsnbc.com gibi.
July 8th, 2009 - 22:22
Hocam çok teşekkürler. Kodları uzun zamandır arıyordum. Bu arada bahsettiğiniz frmdownload sitesi açılmıyor. Keşke onu görseydik. Son olarak kodlar için gerçekten teşşekürler.
July 10th, 2009 - 13:34
Evet Ahmet site düştü. Zaten çoğu sunucu izinde vermedi. Çok fazla saldırı almaya başlamıştı. Onun yerinde http://www.e-indir.org sitesine taşıdım oradan bakabilirsin.
October 17th, 2009 - 21:00
slm hocam ben yazılm öğrenmek istiyorum veri tabanlı ve bu bahsetdiniz veri konrtol eden yazılm kodlarının nasıl yazdığını ben bu konuda cok iyi yerlere gelmek istiyorum beni bu konuda neler nasıl çalışmaya başlmalıyım bana bu konuda bana lütfenyardımcı olurmusunuz herşey için şimdidenteşekkürler
October 18th, 2009 - 14:09
Eğer masaüstü yazılım ile ilgilenmek istiyorsan dat.net ortamını önerebilirim. .Net platformunda C tabanlı dilleri öneriyorum. Örneğin C# ile başlarsan bu işe; kafadan Javascript, Php, ActionScript gibi c tabanından gelen dilleri öğrenmiş olursun. Eğer Vb tabanlı yani microsoft ürünlerinden geliştirmeyi düşünüyorsanda önerim Vb.Net veya Vb olabilir.
Bunlar için internet ortamında ki verileri kullanabilirsin. Veya kitapçılardan ilgili dilin kitaplarını seçip alabilirsin. İnternetten ayrıntılı bir şekilde araştırmanı öneririm kitaplar hakkında. Eğer yardımcı olabildiysem ne mutlu bana
October 18th, 2009 - 22:59
slm hocam ilgilendiniz için cok teşekürler ben baya bir araştıdım bana kızmazsanız bi sorumm daha olacak ben veri lerin kontrolü için ağların ğüvenliği için virüs ve anti virüsler hangi yazılım dili ile yazılır ve sanal saldılara karşı verileri korumak için hangi yazılım kullanılır sadece bu yazılımların dilleriin adını yazmanız yeterli olcaktır sizi meşkul ettiğim içimde şimdiden özürlilerim kolay gelsin hocam
October 18th, 2009 - 23:26
Rahatsızlık sözkonusu değil Murat. Herzaman sorularını beklerim.
Arkadaşım dediğin ağ güvenliği ve benzeri programlara sınır getirerem. Şimdi sana şu şekilde açıklayayım kardeşim. Microsoft, Java’nın popülerliğinden sonra tüm platformlara hitap eden bir dil geliştirmeye karar verdi. Tüm platformlardaki ortak dili, şu an için Dat.net. Dat.Net’in en büyük avantajı hangi programlama dilini biliyorsan o dille imkansızlarını başarabilmen. Yani Dat.Net’te C# ile yapabileceğin tüm işleri Vb ile yapabiliyorsun. Veya Vb ile yapabildiğin herşeyi C++ veya diğer desteklediği diller ile aynısı başarabiliyorsun. Sonuç olarak işletim sisteminin alt yapısının da C’den geldiğini düşünürsek senin sorunun cevabı C# olabilir.
Ama ağ güvenliği ve diğer söylediklerini genellikle nesne tabanlı birçok dilde yapabilirsin. Vb’de olabilir. java’da olabilir. Python’da olabilir.
Sana üstte bunu yazmıştım. “Örneğin C# ile başlarsan bu işe; kafadan Javascript, Php, ActionScript gibi c tabanından gelen dilleri öğrenmiş olursun.”.
Kardeşim sen C# öğren. Bundan 5 yıl sonra yatar kalkar dua edersin bana
October 19th, 2009 - 20:02
Anlaldım cok yi anladım cok teeşkkür edrim bu 5 yıl sürmeyecek ööğrenme ben size harbiden benim sorularıma cevap verdiniz benimle ilgilendiniz ben size harbiden herzaman minnetdarım herzaman duacınızım cok cok teşekkür edrim buarda ben şimdiden C# öğrenmek mçin elimden geleni yapmaya başladım planlarımı yaptım cok teşekkürler hocam RABBİM YAR VE YERDIMCINIZ OLSUN BY:
October 19th, 2009 - 21:38
Sağol muratcım. Sanada Kolay gelsin.
October 29th, 2009 - 21:32
Meraba hocam yazlım öğreniyorum amam HTLM biliyorum meslek lisesinde okuyorum ama ben en cok bana diyeyim Vürüs Ve anti vürüs yazılımlar için hangi yazılım dillerini önerirsiniz yada yukarda ben fazla anlamadım bunlar için sadece c^öğrenmem yeterlimi kolay gelsin şimdiden teşekkürler
October 30th, 2009 - 16:34
Sınırlama getirmek yanlış olur. yani ben sana C öğrenmen hayatın için yeterli desem hata etmiş olurum. C öğrensen iyi olabilir diyebilirim ama. çünkü C tabanından gelen birçok dili öğrenmede zorluk çekmezsin. Örneğin html biliyorum demişsin. C öğrendiğin zaman Web tabanlı bir etkileşimli öğrenmen (Php gibi) çok kısa bir zaman alır. Çünkü kullanılan yapısal programlama komutlarının çoğu benzer özellikte. (Döngüler, Mantıksal Sınamalar vs…) Seçeceğin dili iyi araştırman gerekiyor. sana en uygun dilin hangisi olduğunu, yapacağın projeler için seçeceğin dili belirlemen gerekiyor..
October 30th, 2009 - 20:27
Sayın hocam teşekkür ederim baya dır araştırıyorum ama net bircevap buldum desen yalan olur ama size cok teşekkür edrim