Günümüzde büyüklü küçüklü tüm web siteleri neredeyse PHP diliyle kodlanmış bir halde önümüze sunuluyor. Haber siteleri, oyun siteleri, blog siteleri vs, hatta şu an size yazılar yazdığım WordPress gibi en çok kullanılan bir CMS (İçerik Yönetim Sistemi) bile PHP kullanarak yoluna devam ediyor. Peki bu ve benzeri sitelerden gördüğümüz haber kategorileri, oyunlar vs. kendi web sitemizde bir bölüm oluşturarak gösterme şansımız yok mudur ? Tabi ki vardır.
PHP bot ile veri çekmenin en basit mantığından yola çıkarsak, verileri çekmek istediğimiz sayfanın kaynak kodlarında belirli bir alanı belirterek kendi veritabanımıza veya sayfamıza çekme işlemi olarak adlandırabiliriz. Bunu kod yardımı ile yaparak algoritmayı tamamlamak kalıyor geriye sadece. Bu işlemide en basit örneklerle açıklayalım.
İlk önce PHP bot çekim işlemini en basit şekilde yapmak için file_get_contents() fonksiyonumuz mevcut.
$site = "//www.guraysuerdem.com"; $icerik = file_get_contents($site); echo $icerik;
Bu kod yardımı ile bir php dosyasını çalıştırarak blog sayfamın kaynak görüntüsünü ekrana yazdırabilirsiniz. Veya istediğiniz bir web sitesinin kaynak kodunu ekrana yazdırabilirsiniz.
Web sitesinden veri çekmenin ve ulaşmanın bir diğer yolu ise CURL fonksiyonlarıdır.
functioncurl($url, $post=false) { $user_agent= 'Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6'; $ch= curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, $post? true : false); curl_setopt($ch, CURLOPT_POSTFIELDS, $post? $post: false); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); $icerik= curl_exec($ch); curl_close($ch); return$icerik; }
Şimdilik basit mantık şeklinde web sitesine ulaşmayı anlatmaya çalıştım, yazının devamında veri çekme işlemini gerçekleştireceğiz. Eğer veri çekmek istediğiniz bir web sitesi mevcutsa o örnek üzerinden gidebiliriz, örneğin haber sitesi vs.
Harika bir paylaşım teşekkürler.
sahibinden.com daki ilanlar çekilebilirmi? Örnek olarakda iyi olur 🙂
hocam ben şöle birşey yapmak istiyorum fakat çözemedim veri gönderip gelen değperi veri gönderdiyim sayfada göstermek istiyorum nasıl yapa bilirim
Birtane spor haber botu yapsanız çok hora geçerdi üstad..
file_get_contents ile websitesinden veri çekemiyoruz, galiba kapalı ne yapabiliriz?
Merhabalar file_get_contents’den ne farkı var?
Hocam merhabalar, file_get_contents() ile yapmak daha mantıklı değilmi?
Artık github üzerinden daha kolay yolları var, goutte vb. araştırabilirsiniz.