我的网站使用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)
服务器可能会将您的大量请求视为攻击并拒绝为您提供服务。
快速解决方法是在发出每个请求之间添加一个短暂的延迟。