2011-10-24 116 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