cURL同时请求:结束时出错(7) - CURLE_COUDN'T_CONNECT

问题描述 投票:0回答:1

我的网站使用Zebra_cURL获取请求并行请求。但当达到约500请求系统开始返回CURLE_COUDN'T_CONNECT错误。我也从论坛读了一些答案。我尝试了其中一些。但没有修复。如果有人给我快速回答知道这个错误的解决方案。我目前正在使用此代码。假设已经定义了$com_url_arr_glo数组,它包含大约2300个网址。

$curl1 = new Zebra_cURL();

            $curl1->cache('cache', 3600);
            $curl1->option(CURLOPT_CONNECTTIMEOUT, 20);
            $curl1->option(CURLOPT_FOLLOWLOCATION, 1);
            $curl1->ssl(true);

            $curl1->get($com_url_arr_glo, 'getsizemk');

getsizemk是一个函数在每个URL抓取结束后在每个url中获取一些信息。这是在Zebra cURL Documentation中提到的。

这是我在错误发生后从Zebra_cURL获得的完整数组

[info] => Array
    (
        [original_url] => https://www.masterkreatif.com/page/12
        [url] => https://www.masterkreatif.com/page/12
        [content_type] => 
        [http_code] => 0
        [header_size] => 0
        [request_size] => 162
        [filetime] => -1
        [ssl_verify_result] => 0
        [redirect_count] => 0
        [total_time] => 30.109
        [namelookup_time] => 1.0E-6
        [connect_time] => 0.406
        [pretransfer_time] => 0.906
        [size_upload] => 0
        [size_download] => 0
        [speed_download] => 0
        [speed_upload] => 0
        [download_content_length] => -1
        [upload_content_length] => -1
        [starttransfer_time] => 0
        [redirect_time] => 0
        [redirect_url] => 
        [primary_ip] => 104.24.117.230
        [certinfo] => Array
            (
            )

        [primary_port] => 443
        [local_ip] => 192.168.43.56
        [local_port] => 25775
    )

[headers] => Array
    (
        [last_request] => Array
            (
                [0] => Array
                    (
                        [Request Method] => GET /page/12 HTTP/1.1
                        [Host] => www.masterkreatif.com
                        [User-Agent] => Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0)
                        [Accept] => */*
                        [Accept-Encoding] => gzip,deflate
                    )

            )

        [responses] => Array
            (
            )

    )

[body] => 
[response] => Array
    (
        [0] => CURLE_OPERATION_TIMEDOUT
        [1] => 28
    )

也忘了说,URL工作非常精细!

伙计们!我找到了解决方案。但不知道这适用于所有类型的此错误。但我所做的只是在所有已处理的30个URL包之间添加5秒延迟。无论如何它修复了这个错误。感谢所有人的评论!我添加的只是这个

$curl->pause_interval = 5;
$curl->threads = 30;

(适用于Zebra_cURL)

php curl
1个回答
1
投票

服务器可能会将您的大量请求视为攻击并拒绝为您提供服务。

快速解决方法是在发出每个请求之间添加一个短暂的延迟。

© www.soinside.com 2019 - 2024. All rights reserved.