簡體   English   中英

Facebook調試器不會刮我的網站

[英]Facebook debugger won't scrape my site

我正在創建網站http://Meer.li ,當我通過facebook調試器運行它時 - http://developers.facebook.com/tools/debug/og/object?q=meer.li - 它不能找到我的元標記。

當我查看facebook刮擦的來源時,它顯示了我的網站的精簡版本,它更改了doc-type並且沒有元標記 - http://developers.facebook.com/tools/debug/og /echo?q=http%3A%2F%2Fmeer.li%2F

我在這做錯了什么?

我正在運行rails 3.2,ruby 1.9.3並且整個東西在Heroku上運行,帶有一個mongo數據庫。

編輯

看來我的應用程序中確實有正確的接受標頭...如果我在不同的視圖中這樣做:

<%= request.headers["Accept"] %>

我明白了:

text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

如果我們卷曲-H和正確的標題,為什么我們可以刮掉整個網站? 為什么facebook不刮我的網站?

在調試器中嘗試您的URL,它表示響應狀態代碼為206,這意味着“部分內容”。

我試圖卷曲網址,實際上我得到的響應是偏的,它不包括html,head和body標簽(或它們的結束標簽),看起來像html包含的jsonp響應

$("#designs_content").append

我不確定為什么會發生這種情況,也許你的服務器根據這個檢查請求和響應的用戶代理字符串?


編輯

我不確定這是否與Heroku有任何關系,我從未與他們合作過。 另外,我對rails一無所知,所以我無能為力。

Wget與此無關,它是您的Web服務器根據http請求的標頭返回的響應。 當您使用瀏覽器發出請求時,它會向請求添加一些標頭,以幫助服務器找出一些內容。 如果您在chrome(safari等)中打開firebug或開發人員工具,在網絡選項卡(他們都有)或使用網絡嗅探器,您可以查看發送的標頭。

為了讓您的生活更輕松,我檢查了導致此問題的標題是什么...試試這個:

curl "http://meer.li/"

你會看到響應是jsonp,而不是整個html頁面。 現在試試這個:

curl -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" "http://meer.li/"

並且您將獲得頁面的完整html版本。

由於Facebook在刪除頁面時沒有發送“接受”標題,因此當您使用瀏覽器查看源時,響應不是您所看到的。

我不知道你怎么解決這個問題,因為它肯定是你的具體設置,但現在至少你知道問題是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM