不幸的是,社交網絡仍然不能在SPA頁面上運行javascript。
你可以做一個簡單的測試來模擬Facebook的抓取工具並檢查你鏈接的網站在底層做了什麼。當User-Agent
與其中一個社交爬蟲連接時(例如Facebook的facebookexternalhit/1.1
),頁面看起來就會返回另一個響應。
你可以在你的終端運行以下命令通過檢查自己:
curl -A "facebookexternalhit/1.1" <page address>
你的頁面鏈接返回結果,看起來像它呈現在服務器端:
爲
響應Chrome瀏覽器的User-Agent:對於Facebook履帶的User-Agent
[...]
<meta name="description" content="{{$meta.description}}">
[...]
響應:
[...]
<meta name="description" content="Login4 is a beautiful Login component for your Ionic app. This template contains Intro, Walkthrough, Login and Sign up screens.">
[...]
即使角1.x中不支持服務器端渲染還有另一種方法 - 使用一個真正的瀏覽器渲染頁面,保存HTML輸出,併爲爬蟲一個「緩存」的版本。如果HTTP服務器識別爬網程序的用戶代理程序,它會將來自另一個目錄的文件作爲響應發送。
你的觀察是正確的。您需要做的是確定社交網絡用戶代理,並確保您向其顯示頁面的渲染版本,或使用Open Graph標記顯示任何簡化的結構(但僅適用於**社交網絡爬蟲**不適用於GoogleBot ) –
@AlonEitan我該如何做到這一點? –