PHP bot yapımı,PHP ile otomatik veri çekmek

Merhaba arkadaşlar.Bu konumuzda basitçe PHP Bot nasıl yapılır onu anlatmaya çalışacağım.Öncelikle güzel bir bot yapabilmek için işin mantığını kavramak lazım.İlerleyen konularda aynı mantıkla blogger,tumblr gibi sitelerimize otomatik içerik ekleme yani içerik  botu yapmaya çalışacağım.

Neredeyse tüm sitelerden içerik çekilebilir çekilmeyen siteler istisnadır.Php kullanarak ya da curl ile bunu yapmak mümkün. Botların çalışma mantığı şu şekildedir;
Bot veri çekilecek siteye girer ve tüm sayfayı kaynak kodlara çevirir.Örnek verecek olursak Kırmızı renkle yazılmış Webmaster  yazısını <font color="red">Webmaster</font> olarak görür.Sizde bota emir verirsiniz <font color="red"> ile </font> arasındaki veriyi çek diye.Bot girip iki etiket arasındaki yaziyi ya da veriyi çeker ve sizin siteniz üzerinde gösterir isterseni, bu veriyi veritabanina kayıt edip siteniz üzerinden yayınlaya bilirsiniz.Bunlar uzun konular ilerleyen konularda daha detaylı botlar yapacağız.Şimdi daha iyi kavrayabilmek için uygulamalalı deneyelim.Hostumuzda bot.php adında bir dosya oluşturalım ve aşağıdaki kodları dosyaya ekleyip kaydedelim. Şimdi siteniz.com/bot.php adresine girdiğimizde ekranda Google sitesinin başlığını göreceksiniz.



<?php

$url="http://google.com";

$veri = file_get_contents($url);
 
preg_match('@<title>(.*?)</title>@si',$veri,$baslik);
 
echo $baslik[1];

?>

$url="buraya veriyi çekeceğimiz site adresi gelecek";

$veri = file_get_contents($url); bu kodlarla siteyi kaynak kodlarına çevirdik

preg_match('@<title>(.*?)</title>@si',$veri,$baslik); bu kodlarla sitenin kaynak kodlarına gir ve <title> ile </title> arasındaki veriyi al ve $baslik değişkenine ata dedik.

$baslik[1]; burası önemli.Veriyi $baslik değişkenine atamıştık ama [1] nerden çıktı? Bu da hangi aralıktaki veriyi çekeceğimizi gösteriyor. Örnegin; (.*?)<title>(.*?)</title> yukarıdaki preg match bu şekilde olsaydı [1] değil [2] yazacaktım çünkü başlık verisi ikinci veriler kısmına denk geliyor. İkinci kısma denk geliyor.Eğer [1] yazarsak <title> den önceki kodları çekecektir. Umarım mantığı kavramışsınızdır.Blogu takip edin blogger otomatik konu botu, Tumblr otomatik konu botu gibi botlar yapacağım.Takipte kalın ve yorum yaparsanız sevinirim :) İyi çalışmalar.

Yorumlar

Bu blogdaki popüler yayınlar

HTML içinde görünmeyen yazı

Mouse ile üzerine gelince değişen resim | HTML + CSS

Otomatik arka plan rengini değiştirme (Javascript & HTML)