Как замедлить запросы CURL с вращением прокси? - PullRequest
0 голосов
/ 02 ноября 2018

Я использую CURL с прокси вращающимся:

<code>$url = 'https://www.stubhub.com/';
$proxiesArray = array();
$curl = curl_init();
for ($i = 0; $i <= count($proxiesArray) - 1; $i++) {

    //CURL options.
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
    curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, TRUE);
    curl_setopt($curl, CURLOPT_PROXY, $proxiesArray[$i]);
    curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt( $curl, CURLOPT_AUTOREFERER, TRUE );
    curl_setopt( $curl, CURLOPT_HEADER, FALSE );
    curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT, 0 );
    curl_setopt( $curl, CURLOPT_TIMEOUT, 0 );
    curl_setopt( $curl, CURLOPT_RETURNTRANSFER, TRUE );
    curl_setopt( $curl, CURLOPT_URL, trim($url) );
    curl_setopt($curl, CURLOPT_REFERER, trim($url));
    curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, TRUE );
    curl_setopt($curl, CURLOPT_VERBOSE, TRUE);

    //CURL info.
    $data = curl_exec( $curl );
    $info = curl_getinfo( $curl );
    $error = curl_error( $curl );
    $all = array($data, $info, $error);

    //If success.
    if (empty($error))  {
        echo '<pre>';
        print_r($all);
        echo '
'; перерыв; } // Подождите 2 секунды. сна (2); } curl_close ($ curl);

Но я перенаправлен на страницу Recaptcha, которая содержит сообщение:

Due to high volume of activity from your computer, our anti-robot software has blocked your access to stubhub.com. Please solve the puzzle below and you will immediately regain access.

Чтобы замедлить запросы, я попытался:

curl_setopt($curl,CURLOPT_MAX_RECV_SPEED_LARGE,10);

Также:

curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, function() {
    sleep(2);
    return 0;
});

Но я получаю то же сообщение, так как замедлить процесс, чтобы он походил на настоящий запрос из браузера?

1 Ответ

0 голосов
/ 02 ноября 2018

Я думаю, что ваша проблема в другом

для создания запроса типа браузера, вы должны использовать заголовки в вашем запросе

например, я предлагаю вам добавить useragent в ваши коды и изменять его в каждом отдельном запросе!

пример пользовательского агента: User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20200101 Firefox/61.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...