OnFoto

Merhabalar. PHP’de curl kullanarak istediğimiz herhangi bir siteden veri çekme işlemini paylaşacağım. Bu yazının devamı için daha fazlasını oku diyebilirsiniz. Neyse devam edelim Öncelikle php kodlarımız şu şekilde olacak:

PHP- Kodu:

<?php
$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL, 'KAYNAK SİTE URL');  
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36");  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
$s = curl_exec($ch);  
curl_close($ch);  
preg_match_all('@<title>(.*?)</title>@si',$s,$veri);  
echo "<pre>";  
print_r($veri);  
echo "</pre>";  
header("Content-type:text/html; charset=iso-8859-9");  
?>

curl işlemini başlatıp değişkenlerimi tanımladım. Her cihazda görüntülenebilir şekilde ayarlayıp kaynak URL’imi girdim. Ardından preg_match_all komutuyla ilgili sitede, sayfa kaynağında hangi tagları almak istediğimi belirledim. Aldığım bilgileri $veri ile print ederek ekrana yazdırdım. (echo eklememin sebebi liste görünümünün daha düzgün olması)

Şimdi birlikte bir örnek yapalım. Örneğin WmAraci Forumunun Google kategorisindeki konu başlıklarını çekmek istiyorum.

1

Kategoriye gelip, başlıkları incele yaparak hangi taglar arasında olduğunu kontrol ediyorum.

2

Benim almak istediğim bu sayfadaki konu başlıkları. Konu başlığı gördüğünüz gibi ‘‘line-height:18px;”>Google site ekleme sorunu</a>’’ arasında. Yani kodlarımda ** kısmına **line-height:18px;">** i ekleyeceğim ve ** kısmına da </a> ekleyeceğim. URL kısmına da ilgili kategorinin URL’ini ekleyeceğim ve nihai kodumuz şu şekilde olacak:

PHP- Kodu:

<?php  
$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL, 'https://wmaraci.com/forum/google.html');  
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36");  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
$s = curl_exec($ch);  
curl_close($ch);  
preg_match_all('@line-height:18px;">(.*?)</a>@si',$s,$veri);  
echo "<pre>";  
print_r($veri);  
echo "</pre>";  
header("Content-type:text/html; charset=iso-8859-9");  
?>

Ve Sonuç:
3