2009-08-19 83 views
0

我們有一個大的社區網站建立在Drupal,所在部位有一個強制性的agecheck,然後才能訪問該網站履帶式卡強制agecheck頁上的Drupal

它會檢查一個cookie是內容目前,如果沒有,你會被重定向到年齡檢查頁面。

現在我們認爲抓取工具卡在這個部分,他們會被重定向到年齡檢查,並且永遠不會抓取整個網站。

有沒有人有過這個?處理這樣的事情最好的辦法是什麼?

桑德

編輯

我很抱歉只能說現在這個樣子,跟爬蟲的問題 之一,也是當有人在社區崗位東西給他的牆在Facebook上, Facebook會抓取頁面以獲取圖片和描述(在meta標籤中指定) ,但Facebook也會被重定向到年齡檢查頁面。 如果我添加Facebook爬蟲,useragentcheck會工作嗎? 如果是這樣的話:有人會知道Facebook抓取工具的確切名稱嗎?

下面的解決方案是我們也在網上交叉的一個。如果將facebook抓取工具添加到該列表中,那麼它將解決我們在此年齡檢查頁面中遇到的所有問題。

+1

「該網站有強制性年齡檢查」 - 可能是有原因的。你想在搜索引擎上顯示什麼樣的信息?所有頁面的「過濾」版本?只有一小部分頁面,甚至可能只有一個索引文件? – VolkerK 2009-08-19 10:26:16

回答

2

您可以檢查用戶代理,如果它是抓取工具,則不檢查瀏覽器/用戶是否具有所需的cookie。

Here是一個示例:

function crawlerDetect($USER_AGENT) 
{ 
    $crawlers_agents = ‘Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby’; 

    if (strpos($crawlers_agents , $USER_AGENT) === false) 
     return false; 
} 

// example 

$crawler = crawlerDetect($_SERVER[’HTTP_USER_AGENT’]); 

if ($crawler) 
{ 
    // it is crawler, it’s name in $crawler variable 
} 
else 
{ 
    // usual visitor 
} 
+0

會添加facebook crawler幫助facebook的問題? (看我的編輯) – Sander 2009-08-19 10:31:44

+0

是的,這也將解決你的問題與臉譜鏈接。要找出用戶代理facebook使用的是什麼,可以將所有未通過cookie測試的請求記錄到數據庫或文件,然後嘗試在Facebook上發佈鏈接。您將在數據庫中找到用戶代理字符串。 – Espo 2009-08-19 10:50:20

0

Gary Keith有一個PHP類,你可以用它來檢查訪問者(例如,瀏覽器或履帶式)的所有屬性,類還可以自動更新的詳盡INI定期檢索瀏覽器文件&。還有一個drupal module,雖然我還沒有嘗試過。

+0

謝謝,defenatly去看看這個問題 – Sander 2009-08-20 13:14:34