PHP ile Veri Çekme

PHP ile istediğimiz sitenin istediğimiz kısmını çekerek sayfamızda yayınlayabiliriz.

PHP ile bir sayfadan veri çekmek için file_get_contents hazır fonksiyonunu kullanıyoruz. Aşağıdaki kodu çalıştırırsak sayfayı olduğu gibi çekebiliriz.

<?php

$url = ” https://havadurumu15gunluk.info/havadurumu/ankara-hava-durumu-15-gunluk.html“;

$cekilen_veri = file_get_contents($url);

echo $cekilen_veri;

?>

Ancak biz sayfadaki belli bir alanı almak istiyoruz. Bu durumda ne yapmalıyız?

Böyle bir istediğimiz olduğunda öncelikle bir fonksiyon yazmamız gerekiyor.

function getir($baslangic, $son, $cekilmek_istenen)
{
    @preg_match_all('/' . preg_quote($baslangic, '/') .
    '(.*?)'. preg_quote($son, '/').'/i', $cekilmek_istenen, $m);
    return @$m[1];
}

Ardından veri çekmek istediğim URL adresini belirliyorum.  Ben, https://havadurumu15gunluk.info/havadurumu/ankara-hava-durumu-15-gunluk.html 

sayfasından Ankara’ nın anlık Hava Durumu bilgisini çekmek istiyorum.

$url = ” https://havadurumu15gunluk.info/havadurumu/ankara-hava-durumu-15-gunluk.html “;

Daha sonra öncelikle sayfanın tamamını çekmem gerektiği için yukarıda da anlattığım file_get_contents metodunu kullanıyorum.

$icerik = file_get_contents($url);

Şimdi en önemli kısma geldik. Ankara ilinin Hava Durumunu çekmek istiyoruz. Peki bunların nerede olduğunu nasıl bulacağız. Belirttiğim URL’ye giderek sağ tıklıyorum ve sayfa kaynağını görüntüle diyorum.

Sayfa kaynağı karşıma geliyor ve burada Hava durumu bilgisini bulmak için CTRL + F yaparak Ankara yazıyorum. Sonra 6 Eki Per yazıp bu bilgilerine olduğu HTML etiketlerine ulaşıyorum.

Görüldüğü gibi Etimesgut yazan yer yani bölgenin adının olduğu yer <a title=”Hava Durumu Ankara” href=”/havadurumu/ankara-hava-durumu-15-gunluk.html“> ve   </a>   kodlarının arasında. Bu durumda başlangıcım <a title=”Hava Durumu Ankara” href=”/havadurumu/ankara-hava-durumu-15-gunluk.html“>  ve sonum da </a>   olacak.

$bolge = getir('<a title="Hava Durumu Ankara" href="/havadurumu/ankara-hava-durumu-15-gunluk.html">','</a>', $icerik);

İstediğimiz bilgileri çektik şimdi sadece bunları göstermek kaldı. Burada dikkat etmemiz gereken nokta array olarak çektiğimiz için değişkeni buna uygun yazmak.

$bolge değil de $ bolge[0] şeklinde göstermemiz gerekiyor.

Şimdi aynı işlemi hava durumu için yapacağım. Sayfa kaynağında 17 aratıyorum.

$hava_durumu = getir('<span class="report-C">','</span>',$icerik););

Artık herşey tamam. Sayfamı çalıştırdığımda istediğim verilerin çekildiğini görüyorum.

 <?php

        $url = “https://havadurumu15gunluk.info/havadurumu/ankara-hava-durumu-15- gunluk.html”;

        $icerik = file_get_contents($url);

        function getir($baslangic, $son, $cekilmek_istenen)

        {

            @preg_match_all(‘/’ . preg_quote($baslangic, ‘/’) .

                ‘(.*?)’ . preg_quote($son, ‘/’) . ‘/i’, $cekilmek_istenen, $m);

            return @$m[1];

        }

        $bolge = getir(‘<a title=”Hava Durumu Ankara”

href=”/havadurumu/ankara-hava-durumu-15-gunluk.html”>’,'</a>’, $icerik);

        $hava_durumu = getir(‘<span class=”report-C”>’,'</span>’,$icerik);

         echo  $bolge[0] . “<br />” ;

        echo “<b>sıcaklık:</b> ” . $hava_durumu[0] .  “<br />”;

        ?>

Posted in Uncategorized

Write a comment