2011-10-12 44 views

回答

1

大多數機器人將不會運行任何Javascript代碼。他們會下載你的代碼並檢查它,看它是幹什麼的,幹什麼的,或者那個特定的bot的功能是什麼,但是他們通常不需要真正運行任何JS代碼來做到這一點。

那些運行JS代碼的人會在一個不同於機器人的環境中這樣做。有些可能會模擬瀏覽器環境,有些可能會以實際的瀏覽器運行。但是如果不知道你可能遇到的所有殭屍程序的內部,你真的無法用像Modernizr這樣的工具來解決它。

當談到查看最終用戶的瀏覽器時,瀏覽器檢測被認爲是一件壞事,而功能檢測(即Modernizr)被認爲是更好的解決方案。

但是,由於我上面討論過的因素,規則會隨着機器人的變化而變化,而且根據用戶代理字符串爲它們執行檢測確實變得合法。

任何合法的機器人都會提供一個UA字符串來標識自己,並且應該很容易找到。

如果一個機器人沒有提供可識別的UA字符串,那麼它不是一個合法的機器人,所以你沒有理由給予任何特殊的處理,以使生活更輕鬆。

+0

感謝您的回覆。這樣做的原因之一是,搜索結果中顯示的谷歌圖像預覽正在顯示彈出窗口。 – codecowboy

+0

我最終使用http://user-agent-string.info/download/UASparser-for-PHP來檢測UserAgent並相應地提供了不同的模板 – codecowboy