2011-10-24 121 views
1

我有卷曲的代码来从一个网站它是为过去的几个月里做工精细的数据,但突然停止工作对我来说,它说PHP卷曲数据废弃

HTTP/1.0 302 Moved Temporarily 

我的代码是:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_REFERER, $baseUrl); 
curl_setopt($ch, CURLOPT_PROXY, $proxy[0]); 
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]); 
//curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIE   , $phpSId); 
curl_setopt($ch, CURLOPT_COOKIEJAR  , $cookie); 
curl_setopt($ch, CURLOPT_COOKIEFILE  , $cookie); 
curl_setopt($ch, CURLOPT_USERAGENT  , "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"); 
curl_setopt($ch, CURLOPT_TIMEOUT  , 40); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , 0); 
curl_setopt($ch, CURLOPT_URL   , $url); 
curl_setopt($ch, CURLOPT_HEADER   , 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION , 1); 
curl_setopt($ch, CURLOPT_POST   , 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS  , $data); 
$result = curl_exec($ch); 
curl_close ($ch); 
unset($ch); 
die($result); 

请帮忙,提前致谢

+0

你的问题是什么?我们应该如何知道你所要修改的服务器上发生了什么变化?你能给我们你投票的网址吗? – middus

+0

为什么你不给我们一个例子的URL,所以我们可以检查自己? – phihag

+0

是的,这是一个重定向到另一个URL,所以,请按照它在您的浏览器中,并替换您尝试的URL与新的 –

回答

1

指定的选项已使curl遵循重定向。但是,在重定向链较长的情况下,您可能需要增加CURLOPT_MAXREDIRS

您可以使用包倾卸器(如wireshark)来检查curl发送哪些请求。它可能只是一个简单的垃圾网站,导致它无限重定向。

+0

@gauravstomar如果你对wireshark不熟悉,你可以使用web浏览器比使用wireshark更快地分析重定向。只要看一下http标题就可以看到发生了多少重定向。然后将'CURLOPT_MAXREDIRS'设置为 – steampowered

+0

@JM。可能会涉及到一些特定的反卷曲或JavaScript所需的技巧。将'CURLOPT_MAXREDIRS'设置为1000,应该比任何浏览器都接受更多。 – phihag

+0

其实他们已经阻止了代理访问那里的网站,怎么可能? – GauravSTomar