Facebook 網絡爬蟲

Facebook 網絡爬蟲爬取應用程式或網站的 HTML,該 HTML 透過複製和貼上連結或 Facebook 社交附加程式在 Facebook 上分享。網絡爬蟲收集、快取和顯示該應用程式或網站的資訊(例如其標題、說明和縮圖)。

網路爬蟲必要項目

  • 您的伺服器必須使用 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"