• 13-03-2010, 21:16:07
    #1
    Üyeliği durduruldu
    Bu Aralar Bot Yazmaya Çalışıyorum ama Sürekli Sorunla karsılasıyorum Karşılaştıgım Sorunlar;

    * yazıyı almaya çalıştıgımda Alt sınırı koyamıyorum yazının Başlangıcından Footer kısmına kadar ne kadar yazı reklam vs. alıyor
    * yazı olmayan id'leride Database kayıt Yapıyor
    * zaman aşımı hatası veriyor


    Kodlar Aşagıda ustalarımın Yardımını Bekliyorum. . .



    <?php
    for($i= 0; $i<=10000; $i++)
    	{
    $site = file_get_contents("http://www.izedebiyat.com/yazi.asp?id=$i");
    $title = explode('<font color="#000000" size="5" face="Arial, Helvetica, sans-serif"><strong>',$site);
    $title = explode('</strong></font><BR>',$title[1]);							   
    /*$hikaye = explode('<td valign="top"><strong><span class="arial11"><font color="#666666">',$site);
    $hikayeson = explode('</font></span></strong>',$hikaye[1]);
    $hikayem = explode('<img src="/ikon/86.gif" width="43" height="43" hspace="2" vspace="2" align="left" alt=":ICF:">',$site);
    $hikayemson = explode('</div>',$hikayem[1]);*/
    
    $ekleyen ="116";
    $tarih=date("Y-m-d");
    $kategori ="26";
    /*
    
    $verikayit=mysql_query("insert into "._BURAK."makaleler (baslik, icerik, uyeid, tarih, katid) values ('$title[0]', '$hikayeson[0]', '$ekleyen', '$tarih', '$kategori')");
    if(! $verikayit){
    echo "Veri eklenemedi";
    }else{
    echo "Veri basariyla eklendi";
    }
    
    */
    
    echo "$kategori";
    echo "<br><br><br>";
    echo "$ekleyen";
    echo "<br><br><br>";
    print date("Y-m-d"); 
    echo "<br><br><br>";
    echo "$ekleyen";
    echo "<br><br><br>";
    echo $title[0];
    echo "<br><br><br>";
    echo"<meta http-equiv=\"refresh\" content=\"0.1;URL=http://www.duygusalhikayeler.net/bot2.php?id=$i\">";
    	}
    ?>
  • 14-03-2010, 01:24:53
    #2
    Bu bot2.php o nedir onuda pm den gönderirmisiniz bakayım.
  • 14-03-2010, 01:34:37
    #3
    Üyeliği durduruldu
    dongu yerine adim adim gitseniz biraz daha pratik. ilk basta tek sayfa icin deneyin. degiskenleri yazdirip gorup hatalarinizi duzeltin. sonra donguye sokun. bu sekilde cok yorulursunuz.

    birde eksik bilgiler icin kayit insert sql inden once bilgileri if ile kontrol edip bilgiler tam ise kaydet gibi bir mantik yaparsaniz sorun cozulmus olur
  • 14-03-2010, 03:52:53
    #4
    <?php
    $s = $_GET['s'];
    
    switch($s)
    {
        case "cek":
        echo '<table width="100%" border="2"><tr><td width="10%"><font color="red"><b>ID</b></font></td><td width="50%"><font color="red"><b>Başlık</b></font></td><td width="20%"><font color="red"><b>Kategori</b></font></td><td width="10%"><font color="red"><b>Tarih</b></font></td><td width="10%"><font color="red"><b>Ekleyen</b></font></td></tr>';
     $x = $_POST['i1'];
     $y = $_POST['i2'];
    for($i= $x; $i<=$y; $i++)
       {
    $site = file_get_contents("http://www.izedebiyat.com/yazi.asp?id=$i");
    $title = explode('<font color="#000000" size="5" face="Arial, Helvetica, sans-serif"><strong>',$site);
    $title = explode('</strong></font><BR>',$title[1]);                               
    $hikaye = explode('<div align="justify">',$site);
    $hikaye = explode('<!-- YAZIDAN SONRAKİLER ---------------------->',$hikaye[1]);
    $hikaye[0] = mysql_real_escape_string(strip_tags($hikaye[0],'<br>'));
    $title[0] = mysql_real_escape_string(strip_tags($title[0],'<br>')); 
    $ekleyen ="116";
    $tarih=date("Y-m-d");
    $kategori ="26";
    
        if(!empty($title[0]))
        {
        echo '<tr><td>'.$i.'</td><td>'.$title[0].'</td><td>'.$kategori.'</td><td>'.$tarih.'</td><td>'.$ekleyen.'</td></tr>';
        //echo $hikaye[0]."<br><br><br>";   
       
        $verikayit=mysql_query("insert into "._BURAK."makaleler (baslik, icerik, uyeid, tarih, katid) values ('$title[0]', '$hikaye[0]', '$ekleyen', '$tarih', '$kategori')");
        if(! $verikayit){
        echo "Veri eklenemedi";
        }else{
        echo "Veri basariyla eklendi";
        }
         
            }
        
        }
        
        echo'</table>';
        
        break;
        default:
        echo '<form action="?s=cek" method="post">id Aralığını Giriniz: <input type="text" name="i1"><b>--</b><input type="text" name="i2"><input type="submit" value="Çek"></form>';
        
        
    }
    ?>
    Al bunu Kullan Bakalım Eğer mysql bilgilerin doğruysa sorunsuzca eklersin.Kullanımına gelince sayfa zaman aşımına uğramaması için id aralığını manuel yaptım atıyorum yüzer yüzer çekersin(1 - 100 sonra 100-200 vs vs).
    Senin için sıfırdan yazdım sayılır Hayrını Gör.

    Demo
    www.ofg.name.tr/edeb.php