• 03-12-2022, 23:01:32
    #1
    Merhabalar,
    $context  = stream_context_create(
        array(
            "http" => array(
                "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
            )
        )
    );
    $url = file_get_contents( "SİTE_URL", false, $context);
    Şeklinde kodları yazdığımda
    Warning: file_get_contents(SİTE_URL): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in
    Şeklinde hata alıyorum. SİTE_URL kısmına site adresi yazıyorum sanırım ssl korumalı olduğunda sadece bazı sitelerden bu hatayı alıyorum hem bu hemde curl ile bunu nasıl aşabilirim?
  • 03-12-2022, 23:04:20
    #2
    Hocam yanlış anlamadıysam bir sitenin içeriğini çekmek istiyorsunuz size tavsiyem Curl kütüphanesini kullanmanız çok daha iyi olacaktır
  • 03-12-2022, 23:05:24
    #3
    Baran_Knt adlı üyeden alıntı: mesajı görüntüle
    Hocam yanlış anlamadıysam bir sitenin içeriğini çekmek istiyorsunuz size tavsiyem Curl kütüphanesini kullanmanız çok daha iyi olacaktır
    hocam onuda denedim sanırım aynı sorun olduğundan tabloları görmüyor
  • 03-12-2022, 23:10:38
    #4
    Girdiğiniz URL de cloudflare varsa robot doğrulama sayfasına atıyordur sizi. Daha sonrada header kodu verip engelliyordur.
  • 03-12-2022, 23:11:10
    #5
    Hocam kullandığınız Curl kodunu paylaşır mısınız
  • 03-12-2022, 23:12:10
    #6
    ErayEfe adlı üyeden alıntı: mesajı görüntüle
    Girdiğiniz URL de cloudflare varsa robot doğrulama sayfasına atıyordur sizi. Daha sonrada header kodu verip engelliyordur.
    aynn öyle resimde bu oluyor zaten

    https://prnt.sc/pVKL0cgxbuzd
  • 03-12-2022, 23:13:41
    #7
    Baran_Knt adlı üyeden alıntı: mesajı görüntüle
    Hocam kullandığınız Curl kodunu paylaşır mısınız
    function curlBaslat($sayfa)
    {
        $curl = curl_init($sayfa);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
        $data = curl_exec($curl);
        return mb_convert_encoding($data, "UTF-8", "auto");
    }
    
    function yaz($aciklama, $veri = "")
    {
        echo $aciklama . " " . $veri . "
    ";
    }
    
    $dom = new DOMDocument();
    $dom->loadHTML(curlBaslat("SİTE_ADRESİ"), LIBXML_NOWARNING);
    foreach ($dom->getElementsByTagName('img') as $tag) {
        if ($tag->getAttribute('class') == 'icon') {
            $makaleResimURL = trim($tag->getAttribute('src'));
            yaz("Makale Resim URL: ", $makaleResimURL);
        }
    }
  • 03-12-2022, 23:14:33
    #8
    erdem21 adlı üyeden alıntı: mesajı görüntüle
    aynn öyle resimde bu oluyor zaten

    https://prnt.sc/pVKL0cgxbuzd
    Localhostta cloudflare korumalı sitede bunu almanız normal. İp adresi spam yememiş bir sunucu/hosting üzerinde deneyip file_get_contents için user-agent ayarlayarak çözebilirsiniz. Not: Her user agent işe yaramaz.
  • 03-12-2022, 23:16:40
    #9
    ErayEfe adlı üyeden alıntı: mesajı görüntüle
    Localhostta cloudflare korumalı sitede bunu almanız normal. İp adresi spam yememiş bir sunucu/hosting üzerinde deneyip file_get_contents için user-agent ayarlayarak çözebilirsiniz. Not: Her user agent işe yaramaz.
    Bu şekilde cf bypass buldum acaba işe yararmı?

    https://gist.github.com/yasinkuyu/bb3e1abe15ebdc099201724f4cbd2100


    şuan sadece bot yapıyorum sunucuya geçmek istemiyorum localde çalışmak farklı güzel