2013-08-07 55 views
2

我使用這個代碼來測試我的Awstats的私人代理[4 IPS]停留在「CURLOPT_URL」 60秒

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上保持60s,代理每個代理? 感謝

+0

你知道awstats如何跟蹤訪問時間嗎?它使用卸載ajax處理程序嗎?還是獲得「第1頁」的訪問時間和「第2頁」的訪問時間,並將它們減去以計算用戶在「第1頁」上的時間? – Lee

回答

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 

當然,這是syncronous,所以你必須在腳本運行了至少4分鐘(基於4代理IPS),所以不要忘了設置執行時間限制你的PHP腳本無限(或非常高)。

您可能還需要在curl資源上設置「cookiejar」配置,因爲awstats可以使用會話cookie或類似的東西來識別訪問者。因此需要設置一個cookiejar文本文件,因此可以存儲會話cookie,然後重新發送第二個請求。在使用新的代理IP之前,不要忘記清除cookie文件(或者在選項中設置一個新的文本文件)。

+0

有點感謝Leee top man :) – Kris