Facebook 網路爬蟲

Facebook 網路爬蟲會透過複製和貼上連結,或藉由 Facebook 社群外掛程式,爬取 Facebook 上所分享應用程式或網站的 HTML。網路爬蟲會收集、快取和顯示有關應用程式或網站的資訊,例如標題、說明及縮圖影像。

網路爬蟲必備條件

  • 您的伺服器必須使用 gzipdeflate 編碼。
  • 任何開放社交關係圖屬性都需要在網站或應用程式的前 1 MB 內容之前列出,否則將遭到截斷。
  • 請確保網路爬蟲可以在幾秒鐘內爬取內容,否則 Facebook 將無法顯示該內容。
  • 您的應用程式或網站應該根據網路爬蟲所要求 Range 標頭中指定的位元組,產生並傳回包含所有必要屬性的回應,或者應該完全略過 Range 標頭。
  • 將網路爬蟲使用的用戶代理程式字串或 IP 位址(更安全)加入許可清單。
  • 請確保應用程式或網站允許 Facebook 網路爬蟲爬取與應用程式或網站相關聯的隱私政策

網路爬蟲 IP 和用戶代理程式

Facebook 網路爬蟲用戶代理程式字串:

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

若要取得網路爬蟲目前使用的 IP 位址清單,請執行以下指令。

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

這些 IP 位址經常變更。

回應範例

...
route:      69.63.176.0/21
route:      69.63.184.0/21
route:      66.220.144.0/20
route:      69.63.176.0/20
route6:     2620:0:1c00::/40
route6:     2a03:2880::/32
route6:     2a03:2880:fffe::/48
route6:     2a03:2880:ffff::/48
route6:     2620:0:1cff::/48
... 

疑難排解

如果應用程式或網站內容在爬取時不可用,則您可在內容可用時,透過分享偵錯工具來傳遞網址,或透過使用分享 API,強制完成爬取作業。

您可以使用下列程式碼模擬網路爬蟲要求:

curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "$URL"