2013-07-29 57 views
1

我目前正在創建一個腳本,在下載3個文件後強制我的訪問者註冊/登錄。我打算使用cookie來跟蹤下載次數。網絡爬蟲是否存儲Cookie?

此外,我想阻止惡意網絡爬蟲的內容養殖。我不知道網絡爬蟲是否也可以像普通訪問者一樣存儲cookie,這樣我也可以阻止他們下載我的文件超過3次。

如果不支持cookie的網絡抓取工具仍然可以下載我的文件超過3次,是否有其他方式來跟蹤他們的訪問次數?

+0

爬行一般不存儲cookie,你可以使用驗證碼來減少惡意抓取工具的下載速度,或者簡單地使用Javascript,因爲抓取工具可以避免Java –

+0

取決於抓取工具 – Orangepill

+0

感謝您的回覆。那麼,有沒有其他方法可以追蹤它們?通過IP地址跟蹤它們將要求共享互聯網連接的所有訪問者在檢測到其中一個已經下載了3次以上的人之後註冊。 – jaypabs

回答

0

你可以做的是跟蹤機器人..

我不知道,如果下面的代碼將是準確的,以及useragents可以僞造,但這是我如何做到這一點現在...

//crawler detect 
    function crawlerDetect($USER_AGENT) { 

    //array of crwalers and their user agent, format: array('user agent', 'name'), 
    $crawlers = array( 
    array('useragen1', 'name1'), 
    array('useragen2', 'name2'), 
    array('useragen3', 'name3'), 
    array('useragen4', 'name4'), //cont.. 
); 

    foreach ($crawlers as $c) { 

     if (stristr($USER_AGENT, $c[0])) { 
     return($c[1]); 
     } 
    } 

    return false; 

    } 

    $crawler = crawlerDetect($_SERVER['HTTP_USER_AGENT']); 

    if (!empty($crawler)) { 

    //we have a crawler, do something 

    } 

然後你就可以處理它,只要你想,你可以改變用戶代理通過IPS進行排序,但可能影響少數人的訪客..

+0

我相信這不是一個好主意,因爲正如你所說,網絡爬蟲可以輕易地僞造useragent。我希望比這更好。 – jaypabs

+1

我一直在尋找更好的選擇,但直到現在,這是最好的,我可以得到。如果你不想讓網絡爬蟲能夠下載,你可以使用java,爬蟲不會觸及那部分代碼。 –

+0

哎呀!爲什麼我以前沒有想過這件事。是的,使用JavaScript將會訣竅。謝謝哥們。 – jaypabs