ASP bot örneği: Başka bir siteden veri almak

Günümüz web yazılımında site içeriğinin önemi büyüktür. Arama motoru devi Google için özgün veri site kalitenizin yükselmesi için seçilmiş en seçici kriterlerden biridir. Ancak özgün veri oluşturmak uzun zaman gerektirir. Bot yazılarak başka site içeriği alınıp kendimize göre şekillendirilebilinir. Bu sitemizin index sayısını da artıracaktır. Sitenin index sayısı (Google’da site:siteadresi.com ile gelir) arttıkça ziyaretçi sayısı da artacaktır. Bugün yazacağımız kod başka bir siteden istediğimiz veriyi almamızı sağlayacaktır. Bu borsa bilgileri olabilir, hava durumu olabilir ya da bir makale olabilir. Sizin yeteneğiniz doğrultusunda banlanmadığınız sürece alamayacağınız veri yoktur. Hemen başlıyoruz. Hedefimiz aspkodlari.com içinde belli bir yeri almak olsun.

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

<%
dim aranan,temp,URL,Veri,AramaBaslangic,AramaBitis,Hata

URL = "http://www.aspkodlari.com/"
Veri = GETHTTP(Url)

%>

Yukardaki kod aspkodlari.com anasayfasının kaynak kodlarını Veri değişkenine yükler. Response.Write Veri derseniz, sayfayı aynen sizin sitenizde gösterecektir. Eğer sayfanın belli bir kısmını almak istiyorsak String fonksiyonlarını kullanarak istediğimize ulaşabiliriz. Instr, Replace,Left,Right,Len,Mid bu hazır fonksiyonlardan çokça kullanılanlardır. Devam ediyoruz.

<%

AramaBaslangic = "<!-- blog title and tag line -->"
AramaBitis = "<!-- page navigation -->"

if Veri="" then
  Hata = 1
end if

temp=""
if Hata > 0 then
  temp="Sayfada hata var"
else
  KodBaslasin = Instr(Veri, AramaBaslangic)
  KodBitsin = Instr(Veri, AramaBitis)
  Sonuclar = Mid(Veri, (KodBaslasin), ((KodBitsin)-(KodBaslasin)))
  Sonuclar = Replace(Sonuclar,"ASP Kodları","ASP Dersleri")
  temp = Sonuclar
end if
Response.Write temp
%>

Bu kadar. Yukardaki kod ile aspkodlari.com içinde <!– blog title and tag line –> ve <!– page navigation –> arasındaki html kodlarını almış olduk.

aspkodlari.com

“ASP bot örneği: Başka bir siteden veri almak” üzerine 20 yorum

  1. Merhaba, verdiğiniz bilgi için çok teşekkürler.
    Bi sorum olacam, bu verileri çekip, .mdb veri tabanına yazdırmak için ne yapmak lazım…

  2. türkçe karakterlerde sorun yaratıyor nasıl önüne geçebiliriz.

    kullandığımız halde çözümlenmedi

  3. verileri çektiğiniz sayfa ile sizin sayfanız aynı karakter kodlamasına sahip değilse türkçe karakter problemi yaşayabilirsiniz.
    bunun için sayfanızda en üst kısma aşağıdaki kodları ekleyin.
    < %Session.CodePage = 1254 Session.lcid = 1055 %>

    eğer ajax ile verileri alıyorsanız, GetHttp nesnesinin kullanıldığı sayfanın başında Response.CharSet = “iso-8859-9″ kullanmanız sorununuzu çözebilir. Örnek : http://www.aspkodlari.com/ajaxda-turkce-karekter-sorunu.html

  4. merhaba ; çekilen sayfa içinde linkler bulunuyor, biz sayfayı çektik. içinde bulunan linkleri tıklayınca, bizim sayfada açılmasını nasıl sağlayabiliriz.
    “a.php sayfasını” a.asp uzantılı sitemin sayfasına çektim.
    a.php sayfasında dış bağlantılar var. onları kendi sitemde göstermek için ne yapabilirim.

  5. Merhaba hesab makinesi yazıyorum, 5 + 5 = 10 değerini buluyorum. ama oraya sehven yanlışlık metin yazılınca hata alıyorum. bi de bu konuda yardımcı olabilir misiz?

    web siteniz sayesinde asp de kendimi geliştiriyorum. emeğinize sağlık.

  6. Microsoft VBScript çalışma hatası hata ‘800a0005’

    Geçersiz yordam çağrısı veya değişken: ‘Mid’

    deneme.asp, satır 36

    hatası veriyor neden olabilir ??

  7. Mid ile içerisinde seçilecek stringi bulamıyor. AramaBaslangic ve AramaBitis değerlerini kontrol edin. Tüm siteyi öncelikle alıp görüntüleyerek hedef siteden verileri çekmiş olduğunuzdan da emin olun.

  8. evet hocam dediğini kontrol edince iş düzeldi… bu yöntemle siteden belirli bir kot blogunun bulduüu noktayı çekebilirmiyim..
    örnek:

    bu kotda ” işareti var onu nasıl işleyecaz?

  9. meta name=’title’ content=’ bu kodu çekip bu yzıyı almak istiyorum.. ‘

  10. Merhaba,

    Çektiğiniz veri içerisindeki ” karakterlerinden önce \ karakterini kullanırsanız sorunsuz alabilirsiniz.

    Örnek:

    AramaBaslangic =”meta name=\”title\” content=\””
    AramaBitis = “\””
    KodBaslasin = Instr(Veri, AramaBaslangic)
    KodBitsin = InstrRev(Veri, AramaBitis)

  11. AramaBaslangic = ” ”

    böyle yaptım… hata aldaki gibi

    Microsoft VBScript derleme hatasý hata ‘800a0401’

    Deyim sonu gerekli

    AramaBaslangic = ” <meta name=\"description\" content=\" "

  12. Aşağıdaki kodu denermisiniz. Test ettim çalışıyor.

    < % AramaBaslangic ="meta name=""title"" content=""" AramaBitis = """" KodBaslasin = Instr(Veri, AramaBaslangic) KodBitsin = InstrRev(Veri, AramaBitis) %>

  13. Geri bildirim: Anonim
  14. Döngü nasıl kurabiliriz bu şekilde ?
    Veri çektiğimiz sitede tek bir sonuç yok, birden fazla olduğundan dolayı mecbur döngü gerekiyor for each ile malesef yapamadım.

  15. istediğim alanı alamıyorum nasıl yaptınız biraz yardımcı olabilir misiniz sadece sayfanın hepsi geliyor.

  16. Merhaba, bu kodu uzun süre kullandım. Ancak bu aralar tekrar kullanma ihtiyacım oldu. Fakat bazı sitelerde sorun çıkarmaya başladığını fark ettim. Aldığım hata kodu şudur ;

    Hata Tipi:
    msxml3.dll (0x80072EFD)
    A connection with the server could not be established
    /verial.asp, line 8

    line 8’de ise : StrHTTP.sEnd satırı yer almakta.
    yardımcı olursanız sevinirim.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir