Facebook 網絡爬蟲

內容經常以網頁的形式分享至 Facebook。用戶第一次分享連結時,Facebook 網絡爬蟲將抓取位於該網址的 HTML 以收集和快取內容相關資訊,並以標題、說明和縮圖圖像的方式顯示在 Facebook 上。除了直接在 Facebook 上分享網頁,還有其他的方式可以觸發您網頁上的網絡爬蟲。舉例來說,在網頁上安裝任何 Facebook 社交附加程式可觸發我們的爬蟲抓取該網頁。

識別網絡爬蟲

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

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

facebookexternalhit/1.1

網絡爬蟲存取權

Facebook 網絡爬蟲必須能夠存取您的內容,才能夠正確進行抓取和分享。您的網頁必須對網絡爬蟲顯示。如果要以登入或其他方式限制存取您的內容,您需要提供白名單給網絡爬蟲。請注意,我們的網絡爬蟲只接受 gzipdeflate 編碼,因此請確定您的伺服器使用了正確的編碼。

如果內容在進行抓取時不可用,您可以在內容變為可用時,透過分享除錯工具或使用 Graph 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 的設計概念相當溫和。該機器人存取每個網絡伺服器的時間每數秒鐘不超過 1 次,符合業界標準規範,並且還會尊重您的 robots.txt 設定。

請注意,Facebot 每天檢查並變更您伺服器的 robots.txt 檔案的次數不多,所以任何更新記錄都不是立即產生,而是在下次爬行時產生。