• 22-07-2015, 23:07:15
    #1
    Merhaba, bir sinema sitesi işi için filmleri karşıdan çeken bot yapmam gerekiyor.

    Kodlarımın Mantığı şu şekilde

    for($i=1; $i<100; $i++)
    {
          $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
                
                $baslik = str_replace(" - Sinemalar.com","",$this->ara("<title>", "</title>", $cekilecek));
                
    }
    Burada Var Olanları sorunsuz çekiyor. Ama bir sayfa 404 ise yani yok ise Alttaki Hatayı Alıyorum.

    Warning: file_get_contents(http://www.sinemalar.com/film/1) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in

    Yapmak istediğim şey Eğer karşıdaki sitede bu sayfa yoksa döngüde continue kullanarak $i değerini 1 artırarak bir sonraki sayfaya geçiş sağlamak ama yapamadım.

    Kullandığım kod;

    $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
    
    if($cekilecek===false)
    {
        continue;
    }
    Yukarıdaki kodun dışında bildiğim bir iki kombinasyonu daha denedim ancak olmadı. Eğer bir fikri olan varsa belirtirse sevinirim.
  • 22-07-2015, 23:47:13
    #2
    Hocam belki garip gelecek ama file_get_contents den önce curl ile bağlanıp sayfa durum koduna göre işlem yapabilirsiniz gibi geliyor

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 23:47:13 -->-> Daha önceki mesaj 23:43:43 --

    Bay_Keskin adlı üyeden alıntı: mesajı görüntüle
    Merhaba, bir sinema sitesi işi için filmleri karşıdan çeken bot yapmam gerekiyor.

    Kodlarımın Mantığı şu şekilde

    for($i=1; $i<100; $i++)
    {
          $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
                
                $baslik = str_replace(" - Sinemalar.com","",$this->ara("<title>", "</title>", $cekilecek));
                
    }
    Burada Var Olanları sorunsuz çekiyor. Ama bir sayfa 404 ise yani yok ise Alttaki Hatayı Alıyorum.

    Warning: file_get_contents(http://www.sinemalar.com/film/1) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in

    Yapmak istediğim şey Eğer karşıdaki sitede bu sayfa yoksa döngüde continue kullanarak $i değerini 1 artırarak bir sonraki sayfaya geçiş sağlamak ama yapamadım.

    Kullandığım kod;

    $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
    
    if($cekilecek===false)
    {
        continue;
    }
    Yukarıdaki kodun dışında bildiğim bir iki kombinasyonu daha denedim ancak olmadı. Eğer bir fikri olan varsa belirtirse sevinirim.
    Bu arada belki rastlamamışsınızdır durum kodunu almak için bu yapıyı kullanabilirsiniz:
    $stat = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  • 22-07-2015, 23:48:48
    #3
    BurakKESKIN adlı üyeden alıntı: mesajı görüntüle
    Hocam belki garip gelecek ama file_get_contents den önce curl ile bağlanıp sayfa durum koduna göre işlem yapabilirsiniz gibi geliyor

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 23:47:13 -->-> Daha önceki mesaj 23:43:43 --


    Bu arada belki rastlamamışsınızdır durum kodunu almak için bu yapıyı kullanabilirsiniz:
    $stat = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        return curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
    Bahsettiğiniz kod bu ise denedim hocam olmadı
  • 22-07-2015, 23:58:10
    #4
    Bay_Keskin adlı üyeden alıntı: mesajı görüntüle
    $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        return curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
    Bahsettiğiniz kod bu ise denedim hocam olmadı
    Ne döndürdü hocam?
  • 22-07-2015, 23:59:16
    #5
    BurakKESKIN adlı üyeden alıntı: mesajı görüntüle
    Ne döndürdü hocam?

    Hiçbirşey döndürmedi hocam bu sefer önceden çektiklerini de çekmedi. Ayrıca sonradan referer bilgiside ekledim yine olmadı galiba sinemalar.com özel bir önlem almış olabilir.
  • 23-07-2015, 04:50:32
    #6
    Bay_Keskin adlı üyeden alıntı: mesajı görüntüle
    Merhaba, bir sinema sitesi işi için filmleri karşıdan çeken bot yapmam gerekiyor.

    Kodlarımın Mantığı şu şekilde

    for($i=1; $i<100; $i++)
    {
          $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
                
                $baslik = str_replace(" - Sinemalar.com","",$this->ara("<title>", "</title>", $cekilecek));
                
    }
    Burada Var Olanları sorunsuz çekiyor. Ama bir sayfa 404 ise yani yok ise Alttaki Hatayı Alıyorum.

    Warning: file_get_contents(http://www.sinemalar.com/film/1) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in

    Yapmak istediğim şey Eğer karşıdaki sitede bu sayfa yoksa döngüde continue kullanarak $i değerini 1 artırarak bir sonraki sayfaya geçiş sağlamak ama yapamadım.

    Kullandığım kod;

    $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i"); if($cekilecek===false) { continue; }
    Yukarıdaki kodun dışında bildiğim bir iki kombinasyonu daha denedim ancak olmadı. Eğer bir fikri olan varsa belirtirse sevinirim.
    şu şekilde yapabilirsiniz;
    <?php
    for($i=1; $i<100; $i++)
    {
    	$headers = get_headers("http://www.sinemalar.com/film/$i"); // sayfa headerlarını al
    	if ($headers[0] != 'HTTP/1.0 200 OK')
    		continue; // sayfa durumu 200 değilse devam et
    	
        $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
        $baslik = str_replace(" - Sinemalar.com","",$this->ara("<title>", "</title>", $cekilecek));
    }
  • 23-07-2015, 09:40:43
    #7
    Bay_Keskin adlı üyeden alıntı: mesajı görüntüle
    Merhaba, bir sinema sitesi işi için filmleri karşıdan çeken bot yapmam gerekiyor.

    Kodlarımın Mantığı şu şekilde

    for($i=1; $i<100; $i++)
    {
          $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
                
                $baslik = str_replace(" - Sinemalar.com","",$this->ara("<title>", "</title>", $cekilecek));
                
    }
    Burada Var Olanları sorunsuz çekiyor. Ama bir sayfa 404 ise yani yok ise Alttaki Hatayı Alıyorum.

    Warning: file_get_contents(http://www.sinemalar.com/film/1) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in

    Yapmak istediğim şey Eğer karşıdaki sitede bu sayfa yoksa döngüde continue kullanarak $i değerini 1 artırarak bir sonraki sayfaya geçiş sağlamak ama yapamadım.

    Kullandığım kod;

    $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
    
    if($cekilecek===false)
    {
        continue;
    }
    Yukarıdaki kodun dışında bildiğim bir iki kombinasyonu daha denedim ancak olmadı. Eğer bir fikri olan varsa belirtirse sevinirim.

    file_get ....
    Başına @ ekleyip deneyebilir/test edebilir misiniz?
    @file_get...
  • 23-07-2015, 22:39:35
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bay_Keskin adlı üyeden alıntı: mesajı görüntüle
    Merhaba, bir sinema sitesi işi için filmleri karşıdan çeken bot yapmam gerekiyor.

    Kodlarımın Mantığı şu şekilde

    for($i=1; $i<100; $i++)
    {
          $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
                
                $baslik = str_replace(" - Sinemalar.com","",$this->ara("<title>", "</title>", $cekilecek));
                
    }
    Burada Var Olanları sorunsuz çekiyor. Ama bir sayfa 404 ise yani yok ise Alttaki Hatayı Alıyorum.

    Warning: file_get_contents(http://www.sinemalar.com/film/1) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in

    Yapmak istediğim şey Eğer karşıdaki sitede bu sayfa yoksa döngüde continue kullanarak $i değerini 1 artırarak bir sonraki sayfaya geçiş sağlamak ama yapamadım.

    Kullandığım kod;

    $cekilecek = file_get_contents("http://www.sinemalar.com/film/$i");
    
    if($cekilecek===false)
    {
        continue;
    }
    Yukarıdaki kodun dışında bildiğim bir iki kombinasyonu daha denedim ancak olmadı. Eğer bir fikri olan varsa belirtirse sevinirim.
    <?php
    function git_bro($url)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $print = curl_exec($ch);
    $sunucu_yaniti = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    $arimedya_islem_sonucu = array('sunucu_yaniti' => $sunucu_yaniti, 'kaynak' => $print);
    return $arimedya_islem_sonucu;

    }

    $i = 1;
    $cekilecek = git_bro("http://r10.net/");
    if($cekilecek["sunucu_yaniti"] == "200")
    {
    echo "devam edebiliriz abi";
    }
    ?>

    demirrcom adlı üyeden alıntı: mesajı görüntüle
    file_get ....
    Başına @ ekleyip deneyebilir/test edebilir misiniz?
    @file_get...
    O sadece hata kodlarını kapatır, çözüm değildir.
  • 23-07-2015, 22:52:18
    #9
    arimedya adlı üyeden alıntı: mesajı görüntüle
    <?php
    function git_bro($url)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $print = curl_exec($ch);
    $sunucu_yaniti = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    $arimedya_islem_sonucu = array('sunucu_yaniti' => $sunucu_yaniti, 'kaynak' => $print);
    return $arimedya_islem_sonucu;

    }

    $i = 1;
    $cekilecek = git_bro("http://r10.net/");
    if($cekilecek["sunucu_yaniti"] == "200")
    {
    echo "devam edebiliriz abi";
    }
    ?>



    O sadece hata kodlarını kapatır, çözüm değildir.
    Sizin yazdıklarınızı da denedim hocam maalesef buda çözüm olmadı