Https Den Veri Çekmek

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Merhaba arkadaşlar , 

    simple html dom ile veri çekerken https bir sayfadan  null değer dönüyor. Aşağıdaki gibi curl kodlarıyla çekmeye çalıştığımda ise aşağıdaki gibi şifreli olarak veriyor kodları. Sanırım bot kontrolü var , bunu nasıl aşabiliriz..

    <title>xxx - Security Check</title>    <style type="text/css">@font-face{font-family:'Roboto Condensed';font-style:normal;font-weight:400;src:local('Roboto Condensed'),local('RobotoCondensed-Regular'),url(data:application/octet-stream;charset=binary;base64,d09GRgABAAAAADOoAA8AAAAATSwAA  vs..vs..vs..

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_URL, $base);
    curl_setopt($curl, CURLOPT_REFERER, $base);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    $str = curl_exec($curl);
    curl_close($curl);
    $html_code = new simple_html_dom();
    $html_code->load($str);

     

    Not:  Python ile denedim sorunsuz şekilde kodlar çekti (requests modülü) , php den neden sorun çıktı anlamadım...


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Marslan
    Marslan's avatar
    Kayıt Tarihi: 31/Ağustos/2012
    Erkek

    php için ssl sertifikaları tanımlaman gerekir diye düşünmekteyim.  phyton script dili olarak geçtiği için windowsta tanımlı olan sertifikaları kullanır fakat php windows sertifikalarını doğrudan kullanamayabilir. php server ayarlarını bir kontrol et duruma göre sertifikalarını yükle sorun çözülür diye düşünmekteyim.


    ...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    attackatak
    attackatak's avatar
    Kayıt Tarihi: 06/Mayıs/2007
    Erkek

    hocam büyük ihtimal hata alıyorsun ama görmüyorsun. bu hatayı bypass edebiliyorsun. php'de nasıl bilmiyorum ama .net için:

            public void BypassCertificateError()
            {
                ServicePointManager.ServerCertificateValidationCallback +=

                    delegate(
                        Object sender1,
                        X509Certificate certificate,
                        X509Chain chain,
                        SslPolicyErrors sslPolicyErrors)
                    {
                        return true;
                    };
            } 

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek
    $agent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7";
    $curl = curl_init();
    curl_setopt($curl,CURLOPT_AUTOREFERER,1);
    curl_setopt($curl,CURLOPT_USERAGENT,$agent);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_URL, $base);
    curl_setopt($curl, CURLOPT_REFERER, $base);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    $str = curl_exec($curl);
    curl_close($curl);


    Bu şekilde kullanınca sorun çözüldü
    coder2 tarafından 08/Kas/16 18:27 tarihinde düzenlenmiştir

    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Claw
    Claw's avatar
    Kayıt Tarihi: 30/Temmuz/2015
    Erkek

    ek bir bilgide ben yazayım, php curl metoduna googlebot2 yi tanımlarsak ssl e takılmıyorsunuz


    Real Eyes Realize Real Lies
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek
        curl_setopt($ch, CURLOPT_SSLVERSION,3);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/cacert.pem");
    

    bölümlerini ekliyorsun.  https://curl.haxx.se/docs/caextract.html adresinden (ki herhangi bir site değildir. cURL'in kaynağıdır) cacert.pem dosyasını indiriyorsun. Sorunsuz olarak veri çekiyorsun.


    Sadece bi imza..
Toplam Hit: 1064 Toplam Mesaj: 6
https veri çekmek