如何解决带代理的CURL与不带代理会话的CURL之间的区别
我在使用代理和不使用代理的情况下测试curl的代码都有问题。问题是,当我将代理添加到我的CURL命令到给定的URL时,他们可以检测到我在代理下,因此该页面向我抛出了一个Google验证码。当我使用不带代理的CURL请求时,即使没有验证码,该页面也能正常工作,并且能够处理该页面。我想知道使用代理请求与不与目标URL进行通信之间的区别。
(带代理)
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_VERBOSE,true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_ENCODING,'identity');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,CURLOPT_FOLLOWLOCATION,CURLOPT_STDERR,$curl_log);
curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,1);
curl_setopt($ch,CURLOPT_PROXY,$proxyIP);
curl_setopt($ch,CURLOPT_PROXYPORT,$proxyPort);
curl_setopt($ch,CURLOPT_PROXYUSERPWD,"$proxyUsername:$proxyPassword");
//Execute the request.
$output = curl_exec($ch);
fclose($curl_log);
//Check for errors.
if(curl_errno($ch)){
throw new Exception(curl_error($ch));
}
//Print the output.
echo $output;
(没有代理)
$ch = curl_init($url);
curl_setopt($ch,$curl_log);
//Execute the request.
$output = curl_exec($ch);
fclose($curl_log);
//Check for errors.
if(curl_errno($ch)){
throw new Exception(curl_error($ch));
}
//Print the output.
echo $output;
这2个命令可以访问该页面,但是与代理一起使用时,网页似乎知道我正在使用代理并显示了验证码。 (注意:我正在使用旋转代理)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。