cURL Kullanımı: Başka Siteden Veri Çekme (Bot Yapımı)

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Bir web botu yapmak, temelde hedef sitenin sunucusuna sanki bir tarayıcıymış gibi istek atıp dönen HTML veya JSON içeriğini almaktan ibarettir. PHP cURL kütüphanesi, bu işlemi en profesyonel ve hızlı şekilde yapmamızı sağlayan standart yoldur.

1. Standart Bir cURL İsteğinin Anatomisi​


cURL işlemleri her zaman 4 ana aşamadan oluşur: Oturumu başlat, ayarları yap, isteği çalıştır ve oturumu kapat.

PHP:
<?php
// 1. cURL oturumunu başlat
$ch = curl_init();

// 2. Ayarları yapılandır
curl_setopt($ch, CURLOPT_URL, "https://api.ornek.com/veri"); // Hedef URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);          // Çıktıyı ekrana basma, değişkene aktar
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);          // Yönlendirmeleri (301, 302) takip et

// 3. İsteği gerçekleştir ve gelen veriyi al
$icerik = curl_exec($ch);

// 4. Hata kontrolü yap ve oturumu kapat
if(curl_errno($ch)) {
echo 'Hata: ' . curl_error($ch);
} else {
echo "Veri başarıyla çekildi.";
}

curl_close($ch);
?>

2. Kendini Tarayıcı Gibi Tanıtma (User-Agent)​


Birçok web sitesi, "bot" olarak algıladığı basit istekleri engeller. Bu engeli aşmak için cURL'e bir tarayıcı kimliği (User-Agent) vermeniz gerekir.

PHP:
$agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
curl_setopt($ch, CURLOPT_USERAGENT, $agent);

3. POST İsteği Gönderme​


Hedef sitedeki bir formu doldurmak veya bir API'ye veri göndermek için POST metodunu kullanırız.

PHP:
$postVerisi = [
'kullanici' => 'admin',
'sifre' => '123456'
];

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postVerisi));

cURL Parametreleri ve Görevleri Tablosu​


ParametreGöreviNeden Kullanılır?
CURLOPT_TIMEOUTZaman aşımı süresiSitenin yanıt vermediği durumlarda scriptin takılmasını önler.
CURLOPT_SSL_VERIFYPEERSSL sertifika doğrulamasıHTTPS sitelerde sertifika hatası alırsanız 'false' yapılır.
CURLOPT_HEADERHeader bilgilerini dahil etSunucudan gelen çerez veya header bilgilerini okumak için.
CURLOPT_COOKIEFILEÇerezleri dosyadan okuOturum gerektiren (Login) sitelerde botun kopmamasını sağlar.

4. Bot Yapımında Etik ve Performans​



  • [] Sleep Kullanımı: Hedef sunucuyu yormamak için ardışık istekler arasına sleep(1); ekleyerek "insani" bir hızda çalışın.
    [] Veri Ayıklama (Parsing): Çektiğiniz HTML içeriğinden istediğiniz kısmı almak için PHP'nin DOMDocument sınıfını veya preg_match (Regex) fonksiyonlarını kullanabilirsiniz.
  • Proxy Kullanımı: IP engellemesi (IP Ban) yememek için cURL üzerinden farklı Proxy adresleri tanımlayabilirsiniz.

Sonuç​


cURL, PHP dünyasının "dışa açılan kapısıdır". İster döviz kurlarını çekin, ister bir e-ticaret sitesinden ürün fiyatlarını takip edin; cURL size sınırsız bir veri çekme gücü sağlar. Ancak unutmayın: Başka sitelerden veri çekerken telif haklarına ve sitelerin robots.txt kurallarına uymak yasal sorumluluğunuzdur.
 
Geri
Üst