2010-09-16 45 views
1

我正在通過AJAX加載其數據的網站上工作。我也希望整個網站可以被像谷歌和雅虎這樣的搜索引擎抓取。 我想使網站的2個版本... [1]當用戶來超鏈接應該像GMAIL(#'ed超鏈接) [2]當爬蟲來了超鏈接應該正常工作(AJAX模式關閉)識別搜索引擎爬蟲

我如何識別爬行者?

回答

0

您不應該爲您的用戶和抓取工具呈現不同形式的網站。如果Google發現您這樣做,他們可能會因此而降低您的搜索排名。此外,如果您的版本僅適用於抓取工具,則可能會在您沒有注意到的情況下崩潰,從而導致搜索引擎收到錯誤的數據。

我推薦的是構建一個不需要AJAX的站點版本,並且在每個頁面上都有顯着的非AJAX版本鏈接。這也可以幫助那些不喜歡AJAX版本或者瀏覽器不能正確處理的用戶。

+1

如果我給一個選項註冊用戶使用AJAX版本? – 2010-09-16 16:44:51

0

爬網程序的http標頭應該包含一個User-Agent字段。你可以在你的服務器上檢查這個字段。

Here是用戶代理噸的列表。一些示例:

Google robot 66.249.64.XXX -> 
Googlebot/2.1 (http://www.googlebot.com/bot.html)  

Harvest-NG web crawler used by search.yahoo.com 
Harvest-NG/1.0.2  
+0

謝謝我將會搜索更多關於這個 – 2010-09-16 16:45:28

+0

未來的搜索引擎怎麼樣 – 2010-09-16 16:46:07

+0

這是trickey的一部分,不是嗎。 – 2010-09-16 18:41:02

1

通常可以使用User-Agent HTTP標頭標識爬行程序。專門查看this page以獲取搜尋器的用戶代理列表。一些實例是:

谷歌:

此外,以下是獲取各種語言的用戶代理字符串的一些示例:

PHP: 
$_SERVER['HTTP_USER_AGENT'] 

Python Django: 
request.META["HTTP_USER_AGENT"] 

Ruby On Rails: 
request.env["HTTP_USER_AGENT"] 

... 
+0

感謝您的答案,我會搜索更多的..但作爲布賴恩說,它可能會影響搜索引擎排名:( – 2010-09-16 16:47:20

0

這種方法只是讓你生活困難。它要求您維護兩個完全獨立的網站版本,並嘗試猜測向任何給定用戶提供的版本。搜索引擎不是唯一沒有可用和可用JavaScript的用戶代理。

遵循unobtrusive JavaScriptbuild on things that work的原則。這避免了需要確定給用戶的版本,因爲JS可以正常失敗,同時留下工作的HTML版本。

+0

我明白這是我的計劃是做它簡單的HTML方式... 只是爲了增強,因爲該網頁在用戶瀏覽器加載,如果用戶具有JS功能的URL將被改變爲AJAX形式,如... from(abc.com?var = xyx)到(abc#var = xyz) 所以我會使傳統的版本以及基於ajax的... 現在我已經意識到了缺點我會重新考慮它 謝謝.. – 2010-09-16 16:57:23