Facebook 網路爬蟲

內容經常以網頁的形式分享至 Facebook。用戶首次分享連結時,Facebook 網路爬蟲會抓取位於該網址的 HTML 以收集和快取內容相關資訊,並將內容的標題、說明和縮圖圖像顯示在 Facebook 上。除了在 Facebook 上直接分享網頁之外,還有其他方法可以觸發網頁的網路爬蟲。例如,在網頁上安裝任何 Facebook 的社交外掛程式可讓網路爬蟲抓取該網頁。

識別網路爬蟲

Facebook 網路爬蟲可以透過下列任一個用戶代理程式字串來識別:

facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)

facebookexternalhit/1.1

網路爬蟲存取權

Facebook 網路爬蟲必須存取您的內容,才能夠正確抓取和分享內容。因此,您的網頁必須允許網路爬蟲查看。如果要以登入或其他方式限制您內容的存取權,您需要將我們的網路爬蟲加入允許清單中。請注意,我們的網路爬蟲僅接受 gzipdeflate 編碼,因此請確認您的伺服器使用正確的編碼。同時注意,網路爬蟲只會抓取頁面的前 1 MB 內容,因此任何開放社交關係圖屬性都需要在該截斷之前列出。

如果內容在進行抓取時不可用,您可以在內容可用時,透過分享偵錯工具來傳遞網址或透過使用 圖形 API,以強制重新抓取。

有兩種方式可提供網路爬蟲存取權:

  1. 將以上所列不需要維護的用戶代理程式字串加入允許清單
  2. 將網路爬蟲使用的 IP 位址加入允許清單,這樣做更安全:

請執行此指令來取得網路爬蟲目前使用的 IP 位址清單。

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route  

以上指令會傳回時常變更的 IP 位址清單:

# For example only - over 100 in total
31.13.24.0/21 
66.220.144.0/20    
2401:db00::/32  
2620:0:1c00::/40  
2a03:2880::/32 

確保延遲時間在合理範圍內

您需要保證網路爬蟲可以合理快速地擷取要編目的網址中參照的資源,而且不會超過數秒鐘。如果網路爬蟲做不到,那麼 Facebook 將無法顯示資源。

網路爬蟲限速

您可以對網頁和物件附加標籤,變更 Facebook 的網路爬蟲檢查新內容的等待時間長度。如果我們的網路爬蟲太活躍,請使用 og:ttl 物件屬性來限制網路爬蟲存取權。

Facebot 網路爬蟲

從 2014 年 5 月 28 日起,您可能還會看到網路爬蟲顯示下列用戶代理程式字串:

Facebot

Facebot 是 Facebook 的網路爬蟲機器人,用來幫助改善廣告成效。Facebot 的設計相當友善,它會依循業界規範,盡可能不在每幾秒內造訪各個網頁伺服器超過一次,且會遵守您的 robots.txt 設定。

請注意,Facebot 每天只會為您伺服器的 robots.txt 檔案進行幾次的變更檢查,所以任何更新只會在下次爬取時才生效。