我正尝试使用Xampp并使用CURL
和localhost
上的代理服务器连接到网站。
这是CURL
代码:
$url= 'https://stubhub.com/';
$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $url );
curl_setopt($curl, CURLOPT_REFERER, $url);
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_FOLLOWLOCATION, TRUE );
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
//certificate
$cacert='C:/xampp/cacert.pem';
curl_setopt( $curl, CURLOPT_CAINFO, $cacert );
//SSL
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
//Cookies
curl_setopt($curl, CURLOPT_COOKIEFILE,__DIR__."/cookie.txt");
//User-Agent
curl_setopt( $curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' );
//Proxy
$proxy = '103.94.120.66:52131';
curl_setopt($curl, CURLOPT_PROXY, $proxy);
curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, TRUE);
//Errors
curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
$data = curl_exec( $curl );
$info = curl_getinfo( $curl );
$error = curl_error( $curl );
curl_close( $curl );
$allInfo = array("data" => $data, "info" => $info, "error" => $error);
echo '<pre>';
print_r($allInfo);
echo '</pre>';
每次运行脚本时,我都会收到2个错误中的1个:
1-
Array
(
[data] =>
[info] => Array
(
[url] => https://www.stubhub.com/
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 225
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 56.437
[namelookup_time] => 0
[connect_time] => 0.296
[pretransfer_time] => 0
[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] => 103.94.120.66
[certinfo] => Array
(
)
[primary_port] => 52131
[local_ip] => 192.168.1.25
[local_port] => 59947
)
[error] => Recv failure: Connection was reset
)
2-
Array
(
[0] =>
[1] => Array
(
[url] => https://www.stubhub.com/
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 20.203
[namelookup_time] => 0
[connect_time] => 0
[pretransfer_time] => 0
[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] =>
[certinfo] => Array
(
)
[primary_port] => 0
[local_ip] =>
[local_port] => 0
)
[2] => Failed to connect to 103.94.120.66 port 52131: Timed out
)
我尝试添加此选项:
curl_setopt($curl, CURLOPT_PROXYPORT, 443);
还尝试使用代理的相同端口:
curl_setopt($curl, CURLOPT_PROXYPORT, 52131);
但仍然无法正常工作。
我从这里http://gimmeproxy.com/api/getProxy?supportsHttps=true&maxCheckPeriod=3600&protocol=http
那要怎么做才能使它起作用?
是针对代理的更好的API /库,还是我的代码有问题?