對User Agent的檢測與模擬

      在PHP項目中,需要對送至服務器端的Http請求,檢測其User Agent,如何做?

      在Http請求消息頭中,包含一個field: User-Agent,表明了發送請求的Consumer.在服務器端程序中,

則通過此信息來檢測.

      可以自己編寫代碼,或者利用第三方提供的函數/類庫,來幫助進行.

      在PHP中,可以通過變量$_SERVER['HTTP_USER_AGENT'] ,函數get_browser(),來完成.下面這個

blog有較多描述:

      php判斷客戶端瀏覽器的類型

      如果是採用第三方提供的庫,則能更快速地達到目的.下面的這個git庫,就提供了一個可用的類:

      https://github.com/mavrick/Browser.php

 

      在實踐過程中,上述的類中沒有提供對Baiduspider的檢測,就需要自己進行定製了.定製過程中

最主要的關注信息,是各個User Agent的具體字符串內容.有很多站點提供此類信息,比如:

      1. http://www.httpuseragent.org/

      2. http://www.useragentstring.com/

      當然,去官網能找到最新的信息.比如想了解Google的網頁搜索robot使用的User Agent,可以看看這裏:

      https://support.google.com/webmasters/answer/1061943

 

      接下來,需要使用某種方式來模擬某個特定User Agent的Http請求,以便測試.有什麼工具?

      能夠達到模擬測試的工具較多.有專門完成此任務瀏覽器端擴展.在下面的web中:

      How to Switch Your User-Agent to Googlebot

      就提到了User-agent switcher,這是一個可用於Firefox的擴展,其User Agent 列表可自定義;作者提供的

最新的列表文件,可以在此找到.附件中是當前的最新數據.

      上面的web中還提到另一個工具Header detector,沒有實際使用過.

      同樣,有些工具會附帶簡單的User Agent模擬功能,比如Firefox上的擴展MozBar,它是一個SEO工具欄,

附帶了簡單的User Agent模擬.

      而搜索引擎自身也可能會提供一些方法.比如Google在Webmaster tools裏發佈的新工具: Fetch as Googlebot,可以模擬Googlebog抓取網頁.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章