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 內容,因此您必須在此截止時間之前列出所有開放式圖表屬性。

如果內容在進行抓取時不可用,您可以在內容可用時透過分享錯誤測試工具或使用 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 檔案變更的次數不多,所以任何更新記錄都不是立即產生,而是在下次爬行時產生。