• 31-10-2008, 03:20:39
    #1
    bot ilen belli aralıklar arasını çekebiliyorum fakat sorun şu ki sadece css ilen tasarlanmış sitelerde bunu yapabiliyorum çünkü div id yada div class a göre çektiriyorum tablolarla tasarlanmış bir siteden hangi yöntemle çekebilirim yani o hedef aralığı nasıl belirlerim???
  • 31-10-2008, 15:07:10
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Tablolarla tasarlanmış sitelerden veri çekmek div'le oluşmuş sitelere göre biraz daha uğraştırıcıdır ama mantık aynıdır.

    Yapman gereken kodlar arasında sadece 1 kez kullanılmış olan iki bölüm bulmak. Bu bölümlerden birisi alınacak verilerden önce, ikincisi sonra olmalı.

    Ben bu şekilde çok fazla bot yazdım zamanında. Tbi o zaman css sadece style için kullanılıyordu. web 2 felan yoktu ortada.

    Genelde botlarımda kullandığım fonksiyonu ekliyorum. Umarım yardımcı olur.

    Function VeriCoz(Veri, Basla, Bit)
    iBaslangic = Instr(Veri, Basla)
    iBitis = Instr(Veri, Bit)
    VeriCoz = Mid(Veri, iBaslangic+Len(Basla), iBitis-(iBaslangic+Len(Basla)))
    End Function

    Örnek :
    strHamVeri = VeriCoz(strVeri, "<table border=""1"" width=""200"">","</table><br>")

    "<table border=""1"" width=""200"">" bunun ve "</table><br>" bunun kodlar arasında sadece 1'er kez kullanıldığını düşünelim.

    Fonksiyon bu iki string'in arasındaki verileri alıp bir değişkene atıyor. Bu fonksiyonla kodlar içerisindeki fazla çöplerden kurtularak daha rahat çalışılabilir hale geliyor (en azından benim için)

    Belki bu işi daha kolay yapan fonksiyonlar vardır ama en iyi kod çalışan koddur mantığıyla yeni bir fonksiyon yazma ihtiyacı hissetmedim
  • 31-10-2008, 23:02:00
    #3
    Bot uygulaması için sitenin nasıl tasarlandığı önemli değil.
    Bende zamanında flash içerisine son dakika haberlerini alabilmek için ibr bot hazırlamıştım.
    Css kullanılmıyordu.
  • 02-11-2008, 02:08:42
    #4
    Eposta Aktivasyonu Gerekmekte
    dostum acaba asp botun tüm kodlarını yayınlama imkanın varmı nasıl çalıştığı hakkında bilgimiz olur hemde
  • 02-11-2008, 14:22:57
    #5
    regexp araştır biraz o en sağlamıdır
  • 02-11-2008, 17:58:53
    #6
    arkadaşlar dediğiniz tarz da olayı yapıyorum ama açıklık getirmek gerekirse sadece 1 tanesi için oluyor örneğin bi video sitesindeki arama kayıtlarını çektirecem
    1
    2
    3
    .
    .
    diye sıralıyor onları bu table orda ilk defa kullanılmaya başlıyor ben o kısmı çekiyorum ama 2.video da ayırt edici bi şey yok oda yine table ile açıp kapatıyor
  • 03-11-2008, 00:41:42
    #7
    Veri almak istediğin adresi verirsen senin için denerim.

    Ayrıca dediğine göre her verinin kendisine ait tablosu var. Bunu kendin için kullanışlı hale getirebilirsin.

    ilk ve son unique değerin arasındaki verileri <table ...> şeklinde split ile diziye al. For each ile de verilerin istediğin yerlerini , left, mid, right gibi yardımcı fonksiyonlarla kırpıp kullan.

    Demesi kolay gibi şeyler söyleme lütfen.

    Dediğim gibi verileri almak istediğin adresi verirsen dener sonucunu bildiririm.

    Kolay gelsin
  • 03-11-2008, 01:34:47
    #8
    Akilli.Tv - Türkiyenin ilk ve tek interaktif video paylaşım sitesi arama sayfasında tarkanı sorgulattım ve sonuçlar geliyor ben burda sadece ilk çıkan videoyu çekebiliyorum hocam gerisini yapamıyorum
  • 03-11-2008, 03:31:08
    #9
    instr func. nunu kullanırken veriye bakılmaya başlıyacak noktayı belirleyebiliyorsun. 2. veriye bakarken 1. verinin olduğu noktadan sonra başlatırsan sorun çözülür. basit bi örnek vermek gerekirse


    ilk veri için
    bas1 = Instr(1,Veri, Basla)
    bit1 = Instr(1,Veri, Bit)
    VeriCoz1 = Mid(Veri, bas1, bit1)

    devamında 2. veri için

    bas2 = Instr(bit1,Veri, Basla)
    bit2 = Instr(bit1,Veri, Bit)
    VeriCoz2 = Mid(Veri, bas2, bit2)