【问题标题】:Stay on "CURLOPT_URL" for 60s在“CURLOPT_URL”上停留 60 秒
【发布时间】:2013-08-07 12:02:29
【问题描述】:

我正在使用此代码通过私有代理 [4 ips] 测试我的 Awstats

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 秒? 谢谢

【问题讨论】:

  • 您知道 awstats 是如何跟踪访问时间的吗?它是否使用卸载 ajax 处理程序?或者它是否得到“第1页”的访问时间和“第2页”的访问时间并减去它们以计算出用户在“第1页”上的时间?

标签: php


【解决方案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 个代理 ip),所以不要忘记将你的 php 脚本的执行时间限制设置为无限制(或非常高) .

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

【讨论】:

    猜你喜欢
    • 2021-03-15
    • 2011-07-22
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    相关资源
    最近更新 更多