• 04-09-2010, 13:31:15
    #1
    merhaba arkadaşlar

    web sitemde Balıkesir'in günlük hava durumunu göstermek istiyorum. Ama o klasik hava durumu resmi ile değilde daha çok yazı olarak.
    http://www.meteor.gov.tr/tahmin/il-v...px?m=BALIKESIR
    sayfasındaki bilgileri bir bot yazarak çektim.
    ama her seferinde bot o verileri çekerken siteyi yavaşlattı. Bunun daha kolay bi yöntemi var mı arkadaşlar? ya da bu hizmeti veren başka bir site?

    not: çözüm asp olabilir
  • 04-09-2010, 13:35:11
    #2
    Üyeliği durduruldu
    sabah, öğlen ve akşam olmak üzere 3sefer verileri bot ile çektirip veri tabanına kaydedersen yavaşlama olayını önlemiş olursun
  • 04-09-2010, 20:05:03
    #4
    ayni botu bende yazdım ama o siteye bağlanmak gerektiği için sitemi kasıyor
  • 04-09-2010, 20:10:14
    #5
    çok basit,
    kullandığınız scripte bağımsız bir kod yazarsınız,bu kod hava durumunu xml dosyası olarak kaydeder,cronjob ile bu yazdığnız kodu belirli aralıklara okutursunuz,kullandığınız scriptede xml dosyasını okutursunuz.
    Aşağıdaki kodu sizin için yazdım
    Not: Dosyaları Notepad++ ile UTF8 olarak kaydetmezseniz türkçe karakter sorunu oluşur.
    havadurumuyazdir.php (cronjob a eklenecek dosya)
    <?php
    $html = file_get_contents('http://www.meteor.gov.tr/tahmin/il-ve-ilceler.aspx?m=BALIKESIR');
    $dom = new DOMDocument();
    $dom->loadHTML($html);
    $sicaklik = $dom->getElementById('ctl00_mpBody_pSonDurumSicaklik');
    $nem = $dom->getElementById('ctl00_mpBody_pSonDurumNem');
    $basinc = $dom->getElementById('ctl00_mpBody_pSonDurumBasinc');
    $gorus = $dom->getElementById('ctl00_mpBody_pSonDurumGorus');
      
      $doc = new DOMDocument();
      $doc->formatOutput = true;
      
      $r = $doc->createElement( "havadurumu" );
      $doc->appendChild( $r );
      
      $b = $doc->createElement( "bursa" );
      $sicaklikc = $doc->createElement( "sicaklik" );
      $sicaklikc->appendChild(
      $doc->createTextNode( $sicaklik->textContent )
      );
      $b->appendChild( $sicaklikc );
      
      $nemc = $doc->createElement( "nem" );
      $nemc->appendChild(
      $doc->createTextNode( $nem->textContent )
      );
      $b->appendChild( $nemc );
      
      $basin = $doc->createElement( "basinc" );
      $basin->appendChild(
      $doc->createTextNode( $basinc->textContent )
      );
      $b->appendChild( $basin );
      
      $r->appendChild( $b );
      
      echo $doc->saveXML();
      $doc->save("havadurumu.xml")
      ?>
    havadurumunu xml dosyasından okutacak php kodları
    <?php
    $doc = new DOMDocument();
    $doc->load( 'havadurumu.xml' );
      
    $havadurumu = $doc->getElementsByTagName( "havadurumu" );
    foreach( $havadurumu as $bursa )
    {
      $sicaklikc = $bursa->getElementsByTagName( "sicaklik" );
      $sicaklik = $sicaklikc->item(0)->nodeValue;
      
      $nemc= $bursa->getElementsByTagName( "nem" );
      $nem= $nemc->item(0)->nodeValue;
      
      $basincc = $bursa->getElementsByTagName( "basinc" );
      $basinc = $basincc->item(0)->nodeValue;
      
      echo "<b>$sicaklik - $nem - $basinc\n</b><br>";
      }
    ?>
    bunların yaninada havadurumu.xml diye bir dosya oluşturun.
  • 05-09-2010, 01:31:46
    #6
    http://www.erguner.net/php/fonksiyon...le-hava-durumu

    burada anlatmıştım. Google dan alıyor verileri. basit ve kullanımı kolay.