如何在CURL中生成唯一请求

时间:2014-04-22 11:28:23

标签: php curl web-scraping

我有一个脚本,它使用相同的URL同时在多个请求中使用Curl获取数据。

每次发送新请求时,CURL中是否有任何配置?

因为第二次我尝试使用CURL的行为就像假请求一样。

目前我正在使用此配置。

$ch = curl_init();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_HEADER, true);
curl_setopt ( $ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);     
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ( $ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt ( $ch, CURLOPT_TIMEOUT, 150);
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );            
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
$data = curl_exec($ch); 
curl_close($ch);

如果有人有任何建议,请帮助我。

谢谢...

2 个答案:

答案 0 :(得分:0)

如果你想要另一个curl请求,只需再次创建一个新的curl对象。

$ch1 = curl_init();
$ch2 = curl_init();
...
curl_close($ch1);
curl_close($ch2);

答案 1 :(得分:0)

如果要在每个curl请求中使用相同的选项,可以在循环中使用curl_exec而不关闭或重新初始化它:

$ch = curl_init();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_HEADER, true);
curl_setopt ( $ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);     
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ( $ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt ( $ch, CURLOPT_TIMEOUT, 150);
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );            
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
foreach($urls as $url ){
   curl_setopt($ch, CURLOPT_URL, $url);
   $data = curl_exec($ch); 
}
curl_close($ch);