• Özkan Arıcı

  • 5.353 görüntülenme

  • 14 Haziran 2016

  • 0

  • 2

Php bot yapımı uzak siteden veri çekmek

Php ile uzak bir sitedeki bulunan verileri kendi sitenize çekip gösterebilirsiniz bunu en sağlıklı yöntem olarak curl ile yapmanız en uygunu olacaktır

Peki php ile bot nasıl yapılır,uzak siteden veri nasıl çekilir

Ben bu örnek için meteorlojinin sitesini kullandım ve hava durumlarını çekip gösterdim.ve daha sonrada şehirleri çekip seçilen şehire göre hava durumunu listelettim

meteorloji

öncelikle curl bağlantımı yaptım

<?php



function meteor($site){



$curl=curl_init();
    $tarayici="YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; Yahoo! Search - Web Search)";
    curl_setopt($curl,CURLOPT_REFERER,'http://google.com');
    curl_setopt($curl,CURLOPT_URL,$site);
    curl_setopt($curl,CURLOPT_USERAGENT,$tarayici);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    $site=curl_exec($curl);
    curl_close($curl);
return str_replace(array('\n','\t','\r'),null,$site);




}









?>

daha sonrada verilerimi çekip ekrana getirdim

<div class="row">
    <div class="col-md-8"><?php

        if(@$_GET['m']==""){
            $giris=meteor('http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?m=KESAN#sfB');
        }
        else{
            $giris=meteor('http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?m='.$_GET["m"].'#sfB');
echo" Şu anda gösterilen şehir : ".$_GET['m'];
        }

        preg_match_all('@<table class="tbl_thmn">(.*?)</table>@si',$giris,$veri1);


        echo $veri1[0][0];
        echo "<br>İl Seçiniz <br>";

        ?></div>
    <div class="col-md-4">
        <ul class="list-group">
        <?php

        $ililce=meteor('http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx');

        preg_match_all('@<div id="divSecim520Il">(.*?)</div>@si',$ililce,$veri2);
        preg_match_all('@<ul>(.*?)</ul>@si',$ililce,$veri3);


echo $veri3[0][0];

        ?>

    </ul>
    </div>

</div>

bu mantığını göstermek amaçlı basit bir uygulama dilerseniz siz farklı örnekler yapıp kendinizi geliştirebilirsiniz

meteorloji.php dosyası (tam hali)

 

<html>
<head>
    <title>Meteorloji Veriler</title>
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>

</head>

<body>




<?php



function meteor($site){



$curl=curl_init();
    $tarayici="YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; Yahoo! Search - Web Search)";
    curl_setopt($curl,CURLOPT_REFERER,'http://google.com');
    curl_setopt($curl,CURLOPT_URL,$site);
    curl_setopt($curl,CURLOPT_USERAGENT,$tarayici);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    $site=curl_exec($curl);
    curl_close($curl);
return str_replace(array('\n','\t','\r'),null,$site);




}









?>



<div class="row">
    <div class="col-md-8"><?php

        if(@$_GET['m']==""){
            $giris=meteor('http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?m=KESAN#sfB');
        }
        else{
            $giris=meteor('http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx?m='.$_GET["m"].'#sfB');
echo" Şu anda gösterilen şehir : ".$_GET['m'];
        }

        preg_match_all('@<table class="tbl_thmn">(.*?)</table>@si',$giris,$veri1);


        echo $veri1[0][0];
        echo "<br>İl Seçiniz <br>";

        ?></div>
    <div class="col-md-4">
        <ul class="list-group">
        <?php

        $ililce=meteor('http://www.mgm.gov.tr/tahmin/il-ve-ilceler.aspx');

        preg_match_all('@<div id="divSecim520Il">(.*?)</div>@si',$ililce,$veri2);
        preg_match_all('@<ul>(.*?)</ul>@si',$ililce,$veri3);


echo $veri3[0][0];

        ?>

    </ul>
    </div>

</div>

</body>
</html>

İndir : meteorloji

Yazar: Özkan Arıcı

342 yazı yazmış
Profilini Gör
YORUM YAP

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.

*

code