我在使用身份验证的代理上抓取数据时遇到问题。代理在线,它是私有的,它可以从浏览器中快速运行。
然而,代理需要身份验证,我只是想不出为什么这个简单的脚本不起作用?!
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://automation.whatismyip.com/n09230945.asp");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_PROXY, "proxyIP:proxyPORT");
curl_setopt($ch, CURLOPT_PROXYUSERPWD,"username:password");
$result = curl_exec($ch);
curl_close($ch);
return $result;
?>
我试图用任何有效值设置CURLOPT_HTTPAUTH并且它是相同的..有什么建议吗?
答案 0 :(得分:1)
尝试设置:
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
答案 1 :(得分:1)
您需要使用CURLOPT_PROXYTYPE告诉curl您正在使用哪种类型的代理,否则它将采用默认类型HTTP ...
答案 2 :(得分:0)
尝试此:
curl_setopt($ch, CURLOPT_PROXY, 'proxyIP');
curl_setopt($ch, CURLOPT_PROXYPORT, 'proxyPORT');
而非此:
curl_setopt($ch, CURLOPT_PROXY, "proxyIP:proxyPORT");