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 (247)
VisualBasic Spider Kodlari (235)







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Â
April 30th, 2010 - 01:16
ben de php ile bu tip birşey yazmaya uğraşıyorum bu ara, arama sonuçlarını çekebileceğim bir betik yazmam gerek.. 4-5 projem buna bağlı diyebilirim..
May 1st, 2010 - 18:09
Google arama sırasında altyapıyı değiştirdiğinden dolayı sistem çalışmayacaktır. Bu yazıda ki amacım bir sitenin içeriğini nasıl parçalayarak alabildiğimizi göstermekti ama yazı sonradan geçersiz oldu.
November 4th, 2010 - 02:12
Bence geçersiz deÄŸil hocam çok iÅŸime yaradı ve hala kullanmaktayım yazı için çok teÅŸekkürler yalnız sizden bi ricam daha olacak bu yazıda html dökümanın koları alınıyor yani halihazırda bi adres olması gerekiyor ama bana javascriptten yönlendirilen sitenin yada sayfanın html taglarını alabilen kod lazım yani sayfanın yönlendirilmesi ile baÅŸlıyor ile bitiyor uzantı src olduÄŸu için bi müdahalede bulunamadım yardımcı olursanız çok sevinirim bu arada yazmış olduÄŸunuz yazı için tekrar teÅŸekkürler saÄŸlıcakla kalın…
November 4th, 2010 - 02:16
yukarda yazdığım kodda scrip taglarını kaydetmemiş küçük büyük işaretlerini yazman tekrarlayayım dedim
script language=”JavaScript” type=”text/javascript”
ile başlıyor
script language=”JavaScript” src=”ares.src” /script
ile bitiyor
November 4th, 2010 - 13:07
@Ertan;
Buradaki mantık her tırnak iÅŸareti için fazladan bir tane koymak olacaktır. ÖrneÄŸin “script” aratmak istediÄŸinde “”script”" ÅŸeklinde aratman gerekiyor.
Bu şekilde dener misin ? Ayrıca yorumların içinde çok teşekkürler. Yardımcı olabildiysem ne mutlu bana.
November 4th, 2010 - 23:43
ben bunu yapıyorum zaten bu sayede kendime oyun scripti hazırlıyorum
web sayfası daha doÄŸrusu linki alacak içinden oyun adresini çekecek ve kendi yaptığım sitede yayınlayacak, aslında sistem basit neyse konumuz bu deÄŸil demek istediÄŸim elimde hali hazırda bi adresyok “www.bilmemne.com?deneme=id&bilmemno=id” vs.vs. bu kodla bu ve bunun gibi adreslerin html kodlarına ulaÅŸabiliyoruz ama ben saydafa yayınlanan reklamlar gibi yada belli baÅŸlı scriptler gibi sayfaya entegre edilen script language ile baÅŸlayıp /script ile bitten ve farklı bir adresten script çalıştıran “adresi” istiyorum bu sayede o adresdeki html komutlarına ulaÅŸabilecem. EÄŸer bu kodlara ulaşırsam benim için çok büyük bi dönüm noktası olacak. yardımlarınız için ÅŸimdiden çok teÅŸekkürler.
Düzenlendi: Yorumlarınızı yazarken lütfen Türkçe karakterlerin kullanımına dikkat ediniz. Düzenlenmiştir. (05.11.2010)
November 5th, 2010 - 17:35
@ertan;
Demek istediğinizi anladım. Mantıklı kodlar kullandığınızda bunu yapabilirsiniz. Örneğin başlangıç ve bitiş etiketlerini doğru bir şekilde verebilirseniz zaten bunu başarmış olacaksınız.
Maalesef bu anlamda size yardımcı olamam. Fakat yapılabileceğini kesinlikle söyleyebilirim. (Son projemde aynı sistemin benzerini kullandım.)
İyi çalışmalar.
November 5th, 2010 - 19:35