PHP Curl ile Veri Çekme

Php
513
25 Nisan 2024
5 Dakika

Curl, PHP'nin sunucu tarafında URL'leri ziyaret etmek, veri göndermek ve almak için kullanılan bir kütüphanedir. Basit bir API'ye sahiptir ve birçok protokolü destekler (HTTP, HTTPS, FTP, FTPS vb.). Curl, sunucu tarafında HTTP istekleri yapmak için yaygın olarak kullanılır ve özellikle web scraping gibi veri çekme işlemleri için ideal bir araçtır.


Curl kullanmadan önce php.ini dosyasında Curl eklentisinin etkinleştirildiğinden emin olmalısınız. Ayrıca, Curl PHP uzantısının sunucunuzda yüklü olduğundan da emin olmalısınız.

Curl İsteği Nasıl Yapılır?

Öncelikle, Curl ile bir web sitesine istek yaparak basit bir HTML sayfasını çekelim:

<?php
   // Curl ile web sitesine istek atma
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, "http://www.example.com");
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   $output = curl_exec($ch);
   curl_close($ch);

   // Çekilen veriyi ekrana yazdırma
   echo $output;
?>

Yukarıdaki kod, "http://www.example.com" adresinden bir HTML sayfasını çeker ve ekrana yazdırır. curl_init() fonksiyonu ile Curl örneği oluşturulur ve curl_setopt() fonksiyonuyla çeşitli seçenekler belirlenir. Son olarak, curl_exec() fonksiyonu ile istek yapılır ve çıktı alınır.

Web Scraping, Curl Kullanımı

Curl'ü veri kazıma amacıyla kullanmak oldukça yaygındır. Örneğin, bir web sitesinden belirli bir veri setini çekmek için Curl kullanabilirsiniz. Aşağıdaki örnekte, Wikipedia'nın ana sayfasından başlıkları kazıyarak ekrana yazdıralım:

<?php
   // Curl ile Wikipedia'nın ana sayfasını çekme
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, "https://tr.wikipedia.org/wiki/Ana_Sayfa");
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   $output = curl_exec($ch);
   curl_close($ch);

   // Başlıkları bulma ve ekrana yazdırma
   preg_match_all('/<h2>(.*?)<\/h2>/', $output, $matches);
   foreach ($matches[1] as $match) {
       echo $match . "<br>";
   }
?>

Yukarıdaki örnek, Wikipedia'nın ana sayfasından başlıkları çeker ve ekrana yazdırır. preg_match_all() fonksiyonu ile başlıkları düzenli ifadeyle (regex) buluruz ve ekrana yazdırırız.

QR kodu okutarak bu sayfaya daha hızlı erişebilirsin.