Bu yazıyı anlamanız için az biraz ASP bilmeniz gerekmekte. :) Yazıyı okuduktan sonra niye baştan söylemedin demeyin. :)
İlk önce uyarılarımı yapıyım hemen. Arkadaşlar yazıda asp ile bot yapmayı
daha doğrusu başka kaynaktaki istediğimiz kısımları almayı anlatacağım ama
lütfen başka sitelere zarar verecek şekilde kullanmayın. Sürekli yaptığınız
işleri kolaytırmak için kullanabilirsiniz, örneğin; video siteniz var sitenize
youtube, timsah, izlesene gibi video sitelerinden embed kodları ile video
ekliyorsunuz, bunu botla otomatik hale getirebilirsiniz veya başka sitelerden
ufak bilgileri mesela, havadurumu, döviz bilgileri, puan durumu gibi...
Anlatırken timsah.com üzerinden anlatacağım, timsah.com'da arama yaparak
videoları alalım.
<%Bu fonksiyon ile istediğimiz adresin kaynak kodlarını alabiliriz, kullanımı şöyle;
Function GETHTTP(adres)
Set StrHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
StrHTTP.Open "GET" , adres, false
StrHTTP.sEnd
GETHTTP = StrHTTP.Responsetext
Set StrHTTP = Nothing
End Function
%>
<%
Timsah.com'un kaynak kodlarını aldık ve yazdırdık. Şimdi bu kaynaktan bize lazım
olan kısımları alacağız. İlk olarak bize kaynaktaki hangi kod aralıkları lazım
onu belirleyelim ve o aralıkta çalışalım, tüm kaynağa gerek olmaz genelde.
Belirleyeceğimiz aralığın ve bu şekilde belirlememiz gereken kısımların
benzersiz olması lazım yoksa karışıklık çıkabilir, neyse bunu aşağıda daha iyi anlarsınız.
Şimdi kaynakta bize lazım olan aralığın başlangıç ve bitişi aralığını belirleyelim yani kaynakta 5000 karakter varsa atıyorum bize lazım olan 1340. ve 3575. karakter, bunu bulmak için kaynaktan benzersiz bi' kod seçmeliyiz, ben timsah.com'da başlangıç olarak <div class="listele_filtre"> kodlarını seçtim, siz kafanıza göre istediğinizi seçebilirsiniz tabi.
Bitiş olarakta Sonraki</a> kodunu seçtim, bu ikiside kaynakta sadece birer tane var.
Başlangıç ve bitiş için benzersiz kodlarımızı seçtikten sonra bunların sırasını bulalımki kaynakta bize kaçıncı ve kaçıncı sıradaki kodların aralığı lazım.
kaynak = GETHTTP("http://www.timsah.com/arama?q=araba&x=0&y=0")
response.write kaynak
%>
<%Buda tamamdır, şimdi bize lazım olan asıl kod aralığını temizce alalım;
baslangic = instr(kaynak, "<div class="listele_filtre">")
bitis = instr(kaynak, "Sonraki</a>")
%>
<%
Asıl kaynak kodlarımızıda aldık. :) Şimdi işleme geçelim, sayfada birden fazla video olacak hepsini almak için for döngüsü kullanacağız bunun içinde döngüyü dönderecek bi' şey lazım, mesela videonun başlığı veya adresi videonun
başlığını kullanalım biz, sayfada kaçtane video başlığı varsa o kadar döndereceğiz. :)
Videonun başlığını alalım;
asil_kaynak = mid(kaynak, baslangic, bitis-baslangic)
%>
<%
Videonun başlığınıda aldık bundan kelli videonun diğer bilgilerinide böyle alacağız, gerisini anlatmaya gerek yok, biz döngüyü dönderip diğer bilgileri alalım. :)
bas = split(asil_kaynak, "<a title=""")
baslik = split(bas(1), """ hr")
%>
<%
Aklınıza videonun embed kodunu nasıl alacağınız gelebilir, onun içinde videonun adresini alıp GETHTTP fonksiyonuyla buraya kadar anlattığım işlermlerin hepsini yukardaki döngü içinde yapıp embed'i alırsınız. Ben yinede incelemeniz için bir örnek koyuyorum.
Örnekte akilli.tv'den arama ile başlık, resim ve embed kodlarını alıyorsunuz.
Örneği indirmek için tıklayın.
for i=1 to ubound(bas)
' bu arada videonun diğer bilgilerinide alıcaksınız.
' gerisini size bırakıyorum. :)
next
%>
Uykusuzluğumda birlikte yazdım bu yazıyı, ufak tefek hatalar, eksik kelimeler vs... olabilir kusura bakmayın.
teşekkür ederim hocam bakalım anlayabilecekmiyiz birşeyler =)
Anlamadığın yerleri yazarsan, anlayanlar anlamayanlara anlatır. :)
Hocam mükemmelsin hani aradığını anlatamassın gibi bir durum yaşıyordum ama sen sanke beni anlamışsın :) ellerine sağlık ancak ben seni bir konu üzerinde daha rahatsız etmek istiyorum hocam samet_bicen@hotmail.com.tr eğer zaman bulursan ilgilenirsen çok müteşekkür kalırım çalışmalarınızda başarılar..
selamlar... başka sitelerden veri çekme konulu araştırmam da sitenize rastladım.. sormak istediğim ; belirlediğim sitelerdeki kategorilerden grafik görüntülerini çekmek istiyorum. mesela duvar kağıdı sitelerinden doğa fotoğraflarını kendi sitemdeki bölüme çekmek istiyorum. mümkün müdür. kola gelsin...
Merhaba arkadaşlar, blogla uzun süredir ilgilenemiyodum.
@Samet BİÇEN, müsait olduğumda msn adresini ekleyeceğim.
@sadık, dediğin gibi bişey mümkündür, resim adresini alacaksın sadece. Yazdığımı okuyup yapmaya çalış, yapamazsan aldığın hatalara yaz, olmazsa vaktim olduğunda örnek eklemeye çalışırım.
Bekliyorum hocam sabırsızlıkla ümidimi kesmiştim açıkçası ama çok yoğunsundur. çalışmalarında başarılar kolaylıklar diliyorum beni fazla bekletme :)
@Samet BİÇEN; ekledim msn adresini, 15 güne kadar karşılaştık, karşılaştık yoksa bir daha bulamazsın, askere gidiyorum. :)