保持“CURLOPT_URL”60秒

时间:2013-08-07 12:02:29

标签: php

我正在使用此代码来测试我的Awstats与私人代理[4 ips]

curl_setopt($ch, CURLOPT_URL, "http://example.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPGET,1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_HEADER, FALSE);  
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_PROXY, trim($privateproxylist[$p]));   

当我查看我的统计数据时,我可以看到访问和参考但有没有选项让这个脚本在每个代理的CURLOPT_URL上停留60秒? 感谢

1 个答案:

答案 0 :(得分:1)

根据我发现的网页:

  

根据访问者的第一个和最后一个文档访问之间的时间   AWStats试图计算平均访问持续时间。

因此,您需要等待60秒,然后再次向网站发出请求。由于我不知道AWStats的内部,您可能需要使用不同的页面URL,但理论上,您应该只能请求相同的URL。因此它只是一个案例:

// 1. Make your curl request to URL
// 2. Wait 60s
sleep(60);
// 3. Make the curl request again 
// 4. Change proxy and go back to step 1

当然这是同步的,所以你将让脚本运行至少4分钟(基于4代理ips),所以不要忘记将php脚本的执行时限设置为无限(或非常高) 。

您可能还需要在curl资源上设置“cookiejar”配置,因为awstats可以使用会话cookie或类似的东西来识别访问者。因此需要设置cookiejar文本文件,因此可以存储会话cookie,然后在第二个请求中重新发送。在使用新的代理ip之前,不要忘记清除cookie文件(或只是在选项中设置新的文本文件)。