Acayip.org

Asp ile bot yapmak, başka sitelerden veri çekmek

142 gün önce - 16 Nisan 2010, Cuma 5:17:31 AM

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.
<%
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
%>
Bu fonksiyon ile istediğimiz adresin kaynak kodlarını alabiliriz, kullanımı şöyle; <%
kaynak = GETHTTP("http://www.timsah.com/arama?q=araba&x=0&y=0")
response.write kaynak
%>
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. <%
baslangic = instr(kaynak, "<div class="listele_filtre">")
bitis = instr(kaynak, "Sonraki</a>")
%>
Buda tamamdır, şimdi bize lazım olan asıl kod aralığını temizce alalım; <%
asil_kaynak = mid(kaynak, baslangic, bitis-baslangic)
%>
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; <%
bas = split(asil_kaynak, "<a title=""")
baslik = split(bas(1), """ hr")
%>
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. :) <%
for i=1 to ubound(bas)
' bu arada videonun diğer bilgilerinide alıcaksınız.
' gerisini size bırakıyorum. :)
next
%>
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.
Uykusuzluğumda birlikte yazdım bu yazıyı, ufak tefek hatalar, eksik kelimeler vs... olabilir kusura bakmayın.

Yorumlar;

Öğrenci Öğrenci142 gün önce - 4/16/2010 8:45:36 PM #1

teşekkür ederim hocam bakalım anlayabilecekmiyiz birşeyler =)

Cengiz PEKSOY Cengiz PEKSOY142 gün önce - 4/16/2010 9:28:04 PM #2

Anlamadığın yerleri yazarsan, anlayanlar anlamayanlara anlatır. :)

Samet BİÇEN Samet BİÇEN57 gün önce - 7/10/2010 10:38:31 AM #3

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..

sadık sadık49 gün önce - 7/18/2010 10:45:09 PM #4

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...

Cengiz PEKSOY Cengiz PEKSOY41 gün önce - 7/26/2010 12:04:45 AM #5

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.

Samet BİÇEN Samet BİÇEN39 gün önce - 7/28/2010 2:10:02 PM #6

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 :)

Cengiz PEKSOY Cengiz PEKSOY38 gün önce - 7/29/2010 11:54:27 PM #7

@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. :)

Yorum yap;

Yorum yapmadan önce okuyun;
» Argo, küfür, hakaret içeren, gereksiz uzatmalar içeren (iyiiii gibi), Türkçe kullanımına dikkat edilmeyen, itici (yha, bilmiom gibi) yorumlar asla onaylanmaz.
» Yorumlar onaylandıktan sonra sitede gösterilir.



Muhtemelen benzer yazılar

Sonraki yazı
Şu an en son yazıdasınız.

İlgi çeken yazılarım

Son yazdıklarım

Kategoriler

©2010 Acayip.Org - Tüm hakları saklıdır.
Sitedeki yazıları ve diğer materyalleri kaynak göstererek orjinal halini bozmadan istediğiniz istediğiniz sitede ve blogunuzda yayınlayabilirsiniz.
Tasarım ve programlama: Cengiz PEKSOY nam-ı diğer Peksoft Sitemap RSS ile takip et.