2015-06-22 31 views
1

最近我注意到Facebook的對象調試器無法刮取我網站的任何頁面。在對互聯網進行故障排除和沖刷後,我對可能導致此錯誤的原因感到不知所措。Facebook調試器返回「文檔沒有返回數據」

每當我試圖去拿我的網站的一個新的刮,返回以下錯誤:

錯誤解析輸入URL,沒有數據緩存,或者沒有數據被刮掉。

當點擊進入「看正是我們的刮板看到了你的URL」,刮板回報:

文檔返回任何數據

這顯然是一個有點難以調試給出缺乏數據。下面是我迄今爲止嘗試:

  • 經過DNS設置,一切似乎很動聽
  • 嘗試使用「取像谷歌,」 Googlebot會沒有問題
  • 驗證所有元設置上抓取的網頁HTML網站。 fb:app_id,og:title,og:description,og:site_name,og:urlog:type都存在。
  • 確保規範URL引用主頁,並且沒有任何結尾斜線或尾隨數據。
  • 已回滾承諾我在什麼可能會造成這個損失上次成功抓取日期

之前。如果任何人有任何想法,或需要更多信息,我會很樂意提供。

檢查訪問日誌後,我看到以下內容:

173.252.112.115 - - [22月/ 6/2015:20:49:02 0000] 「GET/HTTP/1.1」 404 993「 - 」 「facebookexternalhit/1.1 (+ http://www.facebook.com/externalhit_uatext.php)」

但是,這是奇怪的,因爲它後面緊跟一個普通用戶:

[用戶IP] - - [22 /月/ 2015:20:48:09 +0000]「GET/H TTP/1.1「200 28227 」 - 「」Mozilla/5.0(Windows NT 6.1; WOW64)爲AppleWebKit/535.7(KHTML, 像壁虎)的Chrome/Safari瀏覽器16.0.912.63/535.7"

沒有什麼robots.txt中不允許漫遊

編輯:本網站上運行的Django和AngularJS是,當我訪問您的網頁瀏覽器和發送facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)User-Agent頭的價值服務我的網頁。我使用的Django SEO-JS與預渲染工作,以改善搜索引擎優化。

+0

你可以提供作爲實際頁面的網址嗎?您是否檢查過服務器的訪問和錯誤日​​志,查看觸發刮擦的時間戳? FB刮板的請求是否能夠到達您的服務器? – CBroe

+0

該網址爲https://taggler.com;我將查看訪問日誌,然後向我報告 –

+0

當我請求一次刮取時,它似乎在我的訪問日誌中註冊。 '173.252.112.115 - - [22/Jun/2015:20:49:02 +0000]「GET/HTTP/1.1」404 993「 - 」「facebookexternalhit/1.1(+ http://www.facebook.com/externalhit_uatext .php)「' 看起來它正在打404?我們有一些日誌表明還有200個響應。 –

回答

1

,我得到一個404 (我爲此使用了ModHeader擴展),而使用我的普通Chrome用戶代理的請求讓我看到了您的開始頁面。

因此,調查您是否有任何插件,「防火牆」規則或類似的設置來應對「機器人」的請求 - 在涉及FB刮板的訪問時,可能在這方面有些過分熱情。
似乎並非是它雖然(只是一個受過教育的猜測,因爲這往往是這些問題的原因),但正如你所說,

它拋出一個Javascript堆棧跟蹤。這似乎是它可能會引起預渲染

- 讓我們知道,如果你找到確切的原因。

+1

的確如此。 Facebook bot的用戶代理被髮送到我們的'?_escaped_fragment_ ='URL,這反過來又向prerender.io拋出一個錯誤。一張票正在預渲染以確定這個404的原因。 –

+1

事實證明,這是由錯誤的nginx服務器引起的。重建新服務器後,一切恢復正常。 –

+2

@ZackTanner能否詳細說明這一點,我認爲我有同樣的問題。 – justberare