Php’de Curl ile Bot Yapımı
Merhabalar. Bu yazıda curl kütüphesini php ile nasıl kullanacağımız hakkında bilgi vereceğim, ve basit bir de curl ile veri çekme işlemi yapacağım. Kısacası php ve curl kullanarak bir bot yapmış olacağız : )
PHP ile CURL Kullanımı
Öncelikle curl fonksiyononlarını ve curl optionlarının ne işe yaradıklarını inceleyelim.
Not : Sunucunuzda php extensions’ları içersinde curl kütüphanesinin aktif halde olması gerekiyor.
Curl_init
Öncelikle curl_init ile başlayalım, init eki ingilizce initialize kelimesinden geliyor, başlatmak manasındadır. Bir çok yazılım dilinde veya frameworkte rastlayabilirsiniz bu tanıma. curl_init fonksiyonu da curl oturumunu başlatmak için kullanılır.
Curl_exec
Curl oturumunu execute etmek (çalıştırmak) için kullanılır.
Curl_close
Curl oturumunu sonlandırmak için kullanılır.
Yukarıdaki fonksiyonu kullanmadan önce tek tek ilerleyelim, daha sonra örneğimizde yukarıdaki fonksiyonu kullanarak daha kolay bi şekilde curl bağlantısı kurup veri çekme işlemine geçebiliriz.
Curl oturumunun detaylarını curl_setopt fonskyinonu ile bildirebiliriz. Aşağıda CURLOPT_URL kullanılarak hamiozturk.com’a bir curl bağlantısı yapılmıştır.
1 2 3 4 5 6 7 8 |
<?php $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://www.hamiozturk.com'); curl_exec($curl); curl_close($curl); ?> |
Php’de Curl ile Bot Yapımı
Curl bağlantısını bir fonksiyona bağlayalım, daha kullanışlı olması için.
1 2 3 4 5 6 7 8 9 10 |
<?php function baglanti($url){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); $sonuc = curl_exec($curl); curl_close($curl); ?> |
Örneği çalıştırmadan önce kullandığımız optionların ne anlama geldiklerine bakalım;
CURLOPT_RETURNTRANSFER Aktarımı doğrudan çıktılamak yerine bir dizge olarak curl_exec() işlevinden döndürmek için TRUE olmalıdır.
CURLOPT_SSL_VERIFYPEER Bağlantımız ssl serfitikalı bir bağlantıysa, değerine false vermeliyiz.
CURLOPT_USERAGENT Botları engellemiş bağlantılar için, bir tarayıcı bilgisi gönderip, curl bağlantısının gerçek bir kullanıcıymış gibi davranmasını sağlar.
Merhaba, https://yobit.net/en/trade/BTC/USD adresinden bazı verileri çekmek istedim ve yarısına kadar başarabildim. Sayfanın içindeki grafikteki çubukların üstüne geldiğimde açılan küçük popup pencerenin içindeki verileri ne yaptıysam çekmeyi başaramadım. Bu konuda bana yardımcı olursanız sevinirim. Cevabınızı bekliyorum. Kolay gelsin.