• 21-02-2023, 03:21:59
    #1
    merhaba
    preg_match_all koduyla bir sitenin linklerini çekiyorum fakat link sayısı oldukça fazla .
    site güvenlik koymuş 200 link bile çekmeden çok fazla sorgu yaptınız diye erişim engeli koyuyor.

    function Baglanlink($url) {                                                  
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
    $cikti = curl_exec($curl);
    curl_close($curl);
    return str_replace(array("\r","\n","\t"), null, $cikti);
    }

    bu kodla sayfayı başlatıyorum. Engeli aşmak için ne yapabilirim?
  • 21-02-2023, 04:41:48
    #2
    Rotating proxye ihtiyacınız var. Her requestte farklı bir IP gider, bu sayede cooldown'a takılmazsınız.
  • 24-02-2023, 00:53:35
    #3
    Önceki bağlantıları bir veritabanı tablosunda veya JSON dosyasında toplayın.
    Ardından bir PHP sayfası içerisinde bu bağlantıları tek tek ul li içerisinde listeleyin ve sayfanın en altında jquery fonksiyonu kullanarak bağlantılara sırasıyla bağlanıp içeriklerini çekin.
    Bu yöntem ile Proxy vs gerek kalmaz normal kullanıcı gibi sayfaları sırasıyla ziyaret etmiş olursunuz.
  • 24-02-2023, 08:56:38
    #4
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    Önceki bağlantıları bir veritabanı tablosunda veya JSON dosyasında toplayın.
    Ardından bir PHP sayfası içerisinde bu bağlantıları tek tek ul li içerisinde listeleyin ve sayfanın en altında jquery fonksiyonu kullanarak bağlantılara sırasıyla bağlanıp içeriklerini çekin.
    Bu yöntem ile Proxy vs gerek kalmaz normal kullanıcı gibi sayfaları sırasıyla ziyaret etmiş olursunuz.
    cevap için teşekkürler. bende böyle deniyorum ama olmuyor. normal sitede gezerkende bir süre sonra captcha k güvenlik geliyor. iki üç kez onuda geçince kopmle engel koyuyor
  • 24-02-2023, 09:23:48
    #5
    Curl değerlerini gönderirken curl header modify edebiliyorsunuz, yani bir google bot gibi veya site içerisinden gönderilen bir istek gibi manipule edebilirsiniz. En azından bir user agent göndermeniz bile olayı değiştirebilir denemek lazım. Mobilden yazıyorum pc ye geçince örnek verebilirim öğleden sonra. Pm atabilirsiniz linki
  • 24-02-2023, 18:38:32
    #6
    Alıntı
    Örnek olsun diye gönderiyorum
    $headers = [
            'accept:          */*',
            'accept-language: en-US,en;q=0.8',
            'cache-control:   no-cache',
            'clienttype:      web',
            'content-type:    application/json',
            'lang:            en',
            'origin:          https://example.com/',
            'pragma:          no-cache',
            'sec-fetch-dest:  empty',
            'sec-fetch-mode:  cors',
            'sec-fetch-site:  same-origin',
            'sec-gpc:         1',
            'user-agent:      Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
    ];
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_URL, 'https://example.com');
    $buffer = curl_exec($ch);
    echo $buffer;
    curl_close($ch);