PHP Bot Yapımı – Uzak Siteden Veri Çekmek

Php ile bot yazarken iki yöntem kullanılır bunlardan biri file_get_contents() yöntemi, bir diğeri ise Php CURL yöntemidir. İlk yöntem local ortamda çalışır ancak bazen sunucuya attığınızda çalışmayabilir o yuzden en sağlıklı yöntem CURL yöntemidir. Bu makalede CURL ile php bot nasıl yazılır ? bundan bahsetmek istiyorum.

Php ile bot yazmak nedir, neden ve nerelerde kullanırız bundan bahsedelim biraz; sitenizde kullanmak istediğiniz bir veriyi başka bir siteden, sayfadan dinamik olarak çekebiliriz. Örneğin film sitelerinin birçoğo bu iş için kendi veri tabanını kullanmaz ve başka bir siteden kaynak alarak sayfasını doldurur ve bu işlem sadece metin türü veriler için değil resim dosyalarına varana kadar çekebilirsiniz.

Şimdi CURL yöntemiyle php bot nasıl yazılır buna bakalım.

Öncelikle kendimize Curl fonksiyonu oluşturalım.

Eğer bir post verisi gönderecekseniz 2. parametreyi “kullanici=bilisim34&sifre=123456” şeklinde kullanmanız gerekecek.

Örneğin :

Bu örnek kullanımda kendi sitemizin paneline giriş yapmak için kullanıcı adı ve şifremizi postlamış olduk. Doğru bilgileri yazdığımızda curl fonksiyonu sayesinde PHP üzerinden panelimize de ulaşabiliriz.

PHP botu ile belirli içerikleri alma

Sitelerin içeriklerine direkt olarak ulaştıktan sonra istediğimiz kısımdaki değeri ve içeriği almak için öncelikle bir ara belirlemeliyiz. Sitenin kaynak kodunu inceleyip ayırt edici bir aralık bulmalıyız.

Ben örnek bir içerik sunacağım, ve bu örnek içerikten istediğimiz kısmı alacağız. Metereoloji sitesinin İstanbul için verdiği sonuçların bulunduğu kısmın kaynak kodu aşağıdaki gibi:

Çok karışık bir kaynak kodu gibi görünüyor ama aslında tam bizim aradığımız gibi bir sonuç. Farkettiyseniz tüm değerler ayırt edilebilecek belli bazı elementlerin arasında. Örneğin tarih class=”sond_zaman”> ile </td> arasında.

Bir içerikte istediğimiz aralığı almak için yine curl gibi hazır bir fonksiyon kullanacağız. Bu fonksiyonu kopyala-yapıştır yaparak sizde kullanabilirsiniz.

Bu parcala_ve_al  fonksiyonuda basit bir şekilde aralık içerisindeki değeri bize verir. Kullanımı için 3 parametre vardır. İlk parametre aralığın başı, ikinci parametre aralığın sonu, üçüncü parametre ise araştırılacak içerik.

Bu örnekte sitemizin kaynak kodlarına ulaşıp <title>…</title> arasını yani sitemizin başlığını almış olduk ve ekrana yazdırdık. Değerin yüklendiği değişkene [0] dememizin sebebi ilk yakalanan aralığı almamız. Eğer benzer aralıklardan daha fazla var ise onlarıda dizinin diğer elemanları olarak ekleyecektir. Örneğin birden fazla title aralığı olsaydı diğer sonuçlarda [1], [2] şeklinde diğer dizilere sıralanacaktı.

Gelelim bu fonksiyonu bahsettiğimiz meteroloji sitesinde uygulamaya:

Sitede alt ve üst sıcaklıkların bulunduğu değerlerin aralığını bulup ara fonksiyonumuz sayesinde aralığı alıp ekrana yazdırdık. Sonuç olarak ekranda İstanbul da 11 Kasım Çarşamba için tahmini sıcaklık:16,5°C  şeklinde bir çıktı alacağız.

Kısaca bot içerik alma mantığı sitelerdeki içeriklerin ayırt edici aralıklarını bulup o kısmı almaya dayanmaktadır. Bunların dışında hayal gücünüzü kullanarak daha bir çok mantık üretebilir ve her türlü içeriğe ulaşıp dilediğiniz botları kodlayabilirsiniz.

Bir Cevap Yazın

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