2011-08-01 110 views
1

我有一個頁面可以統計用戶訪問過多少次(註冊,訪客,每種用戶......)。如何忽略網絡爬蟲?

因此,我每次查看頁面時都更新數據庫中的字段;是的,如果頁面快速刷新,但我不介意這一點。

當然,當一些機器人/爬行器掃描我的網站時,他們會增加這個值,我會擺脫這一點。那麼,是否有一個要忽略的IP地址列表?或者有些機制可以幫助我做到這一點?

+4

曾聽說過robots.txt? – Kumar

+2

@Kumar這是一個很好的起點(正如我在我的回答中提到的那樣),但PITA抓取工具/機器人通常忽略robots.txt – marto

+0

@marto PITA機器人是什麼意思 – Pacerier

回答

1

IP地址可能會改變,因此它不是檢測訪客是否是機器人的最佳方式。相反,我建議在HTTP請求參數中查看用戶代理字符串。

下面是用戶代理字符串列表:http://www.user-agents.org/。特別在「機器人,履帶式機器人,蜘蛛機器人」的R型下面。

+0

那些試圖抓住人們電子郵件?他們不會在請求中發送用戶代理信息:p –

+0

@hugo_leonardo,完全不同的問題 – Pacerier

1

大多數人沒有靜態IP地址。您是否設置了robots.txt來拒絕對抓取工具/機器人的訪問?您可以定期查詢您的日誌文件以嘗試識別那些不尊重robots.txt的文件,儘管用戶代理很容易被欺騙/更改。

+2

他不想阻止機器人,他想在他的訪問統計中忽略它們。 –

3

另一種方法是使用ajax。大多數爬蟲不解析JavaScript。

+0

哦......是的,這是一個很好的觀點:)與「大多數」你是什麼意思?有沒有解析js的抓取工具? – markzzz

+0

谷歌有能力解析JavaScript。但**我認爲**它只能在URL中使用'#!'在網頁上進行(如twitter)。 –

+0

無論如何,因爲谷歌是尊重'robots.txt',你也應該使用它。有了它,你可以根據需要禁用統計頁面。 –