2011-12-21 53 views
0

我使用Google Maps API,其費用要求頗多最好的辦法:檢測真實的用戶+塊機器人

  • 我的目標是讓儘可能少的要求成爲可能,所以我在這裏使用了大量的緩存
  • 的API調用的每個頁面加載,但不需要被稱爲像Googlebot的

所以非人類用戶,什麼是檢測用戶是否是一個機器人或者人類最好的方法是什麼?

  • 請不要在這裏註冊captcha技巧。
  • 也許我們可以檢查頁面載入上的鼠標事件並在檢查時向用戶顯示加載圖標(以及技術概念如何實現這一點)?
  • 更好的主意?
+0

(從api v3 reference複製),如果你可以用一些用戶生活在沒有JavaScript不能訪問地圖,把地圖代碼在JavaScript。機器人不執行JavaScript。 – Yogu

+0

請參閱http://stackoverflow.com/questions/677419/how-to-detect-search-engine-bots-with-php獲取靈感:) – Stefan

回答

1

我會使用Javascript來加載地圖圖像。 Web刮板和機器人通常不會嘗試解析或執行Javascript。這可確保您的API調用僅在瀏覽器訪問該頁面時纔會發生。

您可以通過將您的API調用分解爲您通過AJAX調用的單獨頁面來實現此目的。

1

使用JavaScript函數,例如initialize()來設置您的Google地圖API調用。

例如

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=set_to_true_or_false"></script> 
<script type="text/javascript"> 
    function initialize() { 
    var latlng = new google.maps.LatLng(-34.397, 150.644); 
    var myOptions = { 
     zoom: 8, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    } 

</script> 
</head> 
<body onload="initialize()"> 
    <div id="map_canvas" style="width:100%; height:100%"></div> 
</body> 

+0

謝謝,不幸的是,特別是googlebot花了很多錢並且查詢API很多;)→猜它吃JS ... – Lukas

+0

如果仍然需要一個解決方案,你知道你的機器人例如google會遵循這些措施([link](http://support.google.com/webmasters/bin/answer.py?hl=de&answer=1061943))查看頁面末尾的元標記,在Xmas上節省開支前夕;) – maxRoald