PHP curl数据抓取


php curl data scraping

我有一个CURL代码从一个网站获取数据,它在过去的几个月里工作得很好,但突然停止工作,它说

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);

请帮忙,提前谢谢

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

可以使用wireshark等包转储工具检查哪些请求是由curl发送的。这可能只是被抓取网站的一个bug,导致它无限重定向。