2010-05-05 59 views
13

我們有一種情況,即在頁面點擊和漫遊器登錄訪問和訪問者時堵塞了我們的數據庫。我們不能使用驗證碼或其他技術,因爲這是在我們甚至要求人類輸入之前,基本上我們正在記錄頁面點擊,並且我們只想記錄人類的頁面點擊。如何以編程方式檢測機器人

是否有已知的bot IP列表?檢查已知的bot用戶代理是否工作?

回答

19

沒有確定的方法來抓住所有的機器人。如果有人想要,機器人可以像真正的瀏覽器一樣行事。

大多數嚴重的機器人都在代理字符串中清楚地標識自己,因此通過已知機器人的列表,您可以將它們中的大多數機器人排除在外。在列表中,您還可以添加一些代理字符串,這些代理字符串默認情況下是一些HTTP庫使用的,以便從甚至不知道如何更改代理字符串的人員中收集殭屍工具。如果您只記錄訪問者的代理字符串,則應該能夠挑選出要存儲在列表中的那些字符串。

您也可以在頁面上放置一個隱藏的鏈接,導致頁面被robots.txt文件中的過濾掉,從而製作一個「壞的bot陷阱」。嚴重的機器人不會遵循鏈接,人類無法點擊它,所以只有不遵循規則的機器人才會請求文件。

+1

您也可以爲行爲良好的機器人創建robots.txt文件http://www.robotstxt.org/orig.html – 2011-08-17 06:49:46

0

我認爲許多機器人可以通過用戶代理識別,但肯定不是全部。已知的IP列表 - 我也不會指望它。

啓發式方法可能有效。機器人通常比人們更快地跟蹤鏈接。也許你可以跟蹤每個客戶的IP並檢測鏈接後的平均速度。如果它是一個爬蟲,它可能會立即跟蹤每個鏈接(或者至少比人類快得多)。

0

我不認爲會有僵屍網絡IP地址,IP僵屍網絡地址的列表不是靜態的,並且沒有人知道哪些是殭屍程序,包括像殭屍程序一樣行爲的用戶。

你的問題現在可以說是熱門研究領域,我很好奇,如果有人可以爲這個問題提供解決方案。

你可以使用任何一種技術,並瞭解這是否是人類,然後你可以得到日誌。

0

您是否已經添加了robots.txt?雖然這不會解決惡意機器人使用問題,但您可能會對您網站上已發生的合法抓取活動感到驚訝。

+0

我不確定robots.txt會幫助他們分別記錄真實的訪問者。他們沒有說他們想完全過濾掉漫遊器。 – 2013-01-22 10:02:10