Php Dersleri – file_get_contents() Fonksiyonu İle Bot Hazırlama

Merhaba arkadaşlar , mobilhanem.com için hazırladığımız Php Eğitimlerinde bu ders php de en popüler konu olan php ile (file_get_contents metodu ile) bot hazırlama kısmına gireceğiz. Öncelikle nedir bu bot biraz bahsedelim.

Bot bizim yerimize bir işi yapan yazılımdır. Örneğin mobilhanem’in yazılarını bir txt dosyasına başlık, resim url ve içerik olarak kaydedeceğimizi varsayalım. Eğer botumuz yok ise bu işi elimiz ile tek tek yapmamız gerekiyor ama bot hazırlarsak botumuzu çalıştırdığımızda eğer düzgün çalışan bir botumuz varsa bize tüm yazıları bir txt dosyası halinde verir. Bot yazmayı iyi kavrarsanız çok rahat bir şekilde harçlığınızı çıkarabilirsiniz 🙂 Bot yapmayı daha iyi anlayabilmeniz için bir önceki dersimiz olan Php Dersleri – Regular Expression dersimizi incelemenizi öneririm.

Php file_get_contents() Fonkisyonu

file_get_contents() fonksiyonu parametre olarak bir web url alır ve bu adresteki veriyi geri döndürür. file_get_contents() fonksiyonunun opsiyonel olan parametreleri de var. Detaylı bilgi için Php.net – file_get_contents adresine bakabilirsiniz.

$veri = file_get_contents(“http://mobilhanem.com”); mobilhanem linkinden gelen html veriyi $veri değişkenine atar.

 

Bir Örnek Yapacak Olursak:

Kodu çalıştırdığımızda ekranda mobilhanem’in tasarımını göreceksiniz.

Şimdi yavaş yavaş bot yazma kısmına giriş yapalım. mobilhanemdeki yazıları kendi sitemizde göstermek istediğimizi varsayalım. (İzinsiz böyle birşey yapmak kesinlikle etik değil). Yazılara ait başlık, resim ve içeriği alalım.

1-Php İle Bot Yazmaya Giriş

Öncelikle web sitesine bağlanalım.

İlerlleyen zamanlarda site teması değişir ise dersimiz güncelliğini kaybetmesin diye url değerini biz sabit bir html yaptık. Botların kötü taraflarından biri botunu yazdığımız sitenin tasarımı değişince botun çalışmamasıdır.

2- Regex İle Yazılara Ulaşma

Artık karşıdaki sitenin html kısmı elimizde var şimdi ordan sadece işimize yarayacak kısmı yani  contentteki yazıları regex ile alalım. Bot hazırlamak için öncelikle karşıdaki sitenin html kısmını incelememiz gerekir. Biz mobilhaneme baktığımızda yazılar için aşağıdaki şekilde bir html mevcut.

Burada yazının kapsayıcı elemanı article olduğu için patterni ona göre yazıyoruz.

Regex kısmında ise konuşma dili ile tercüme edersek şöyle bir ifade yazdık.

şeklinde bir regex  patterni yazdık. Şimdi bu postların resim ve başlığı alalım.

3- Regex İle Yazı İçerisindeki Verilere Ulaşma

Resim ve başlığı almak için yazılarda yaptığımız gibi yine htmli incelememiz gerkir.

Burada biz ne kadar regex kuralı koyarsak dizi boyutu o kadar artar bu diziyi print_r ile ekrana yazdırarak hangi veri işinize yarıyor, ne gibi veriler geliyor görebilirsiniz. Ben kısa olması açısından test edip gerekli kısımları ekledim. Şimdi botumuzda  mobilhanemden çektiğimiz yazıları listeleyelim.

4- Alınan Verileri Ekranda Gösterme

Aldığımız verileri for veya foreach döngüsü kullanarak aşağıdaki şekilde ekranda gösterebiliriz.

Kodu çalıştırdığımızda resimlerin görünmediğini ve linklerin bozuk olduğunu fark edeceksiniz. Bu hatanın sebebi ise bağlandığımız sitenin relative url kullanıyor olması. Şimdi küçük dokunuşlarla hatamızı düzeltmeye çalışalım. Kodu yazmadan önce şöyle geçmiş derslerimizi kafamızda canlandıralım. Hangi fonksiyon bizim işimizi görür ? Evet evet doğru bildiniz tabiki str_replace fonksiyonu ile düzenleme yapabiliriz 🙂  Kodumuzun düzenlenmiş hali:

Url kısmında yaptığımız değişikliğe bakarsanız burada post_detay.php=url= şeklinde bir yapı kullandık. Bu yapıyı Php Dersleri – GET ve POST Örnekleri dersimizde görmüştük.

Şimdi post_detay.php sayfamızı hazırlayıp sayfamızda gelen linkteki veriyi gösterelim.

5- Linke Tıklanınca Post Detayını Gösterme

Post detayını gösterirkende yine htmli inceleyerek gerekli regex patternlerini yazmamız gerekir.

Evet arkadaşlar eğlenceli bir dersin sonuna geldik. Dersi bitirdiğinize göre artık freelancer sitelerde ücretli bot yazılır gibi  ilanlar verebilirsiniz :))

Demo İçin : Bot Uygulaması Demo bakabilirsiniz.

İndirmek İçin: Github – Mobilhanem adresinden indirebilirsiniz.

Bir sonraki dersimizde görüşmek üzere 🙂

Php ile bot hazırlama  konusu ile  ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

 

 

Vehbi Akdoğan

Erzurum Atatürk Üniversitesi Bilgisayar Mühendisliği Mezunu
Web & Android Developer
#erzurumspor

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?