Facebook调试器返回“文档返回没有数据”

时间:2015-06-22 20:28:16

标签: facebook facebook-graph-api

最近我注意到Facebook的Object Debugger无法抓取我网站的任何页面。在对互联网进行故障排除和搜索之后,我对可能导致此错误的原因感到茫然。

每当我尝试获取我的网站的新网页时,都会返回以下错误:

  

解析输入网址时没有错误,没有缓存任何数据,也没有删除任何数据。

当点击“查看我们的刮刀看到你的网址的确切内容”时,刮刀会返回:

  

文档没有返回数据

由于缺乏数据,这显然有点难以调试。这是我到目前为止所尝试的内容:

  • 检查DNS设置,一切似乎都很好
  • 尝试使用“抓取Google”,GoogleBot抓取网页HTML没有问题
  • 验证了网站上的所有元设置。 fb:app_idog:titleog:descriptionog:site_nameog:urlog:type都在场。
  • 确保规范网址引用主页,并且没有任何尾随斜杠或尾随数据。
  • 在上次成功抓取日期之前回滚提交

我对可能造成这种情况的原因感到茫然。如果有人有任何想法,或需要更多信息,我很乐意提供。

检查访问日志后,我看到以下内容:

  

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)“

但这很奇怪,因为普通用户会紧接着:

  

[user ip] - - [22 / Jun / 2015:20:48:09 +0000]“GET / HTTP / 1.1”200 28227   “ - ”“Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 535.7(KHTML,   像Gecko)Chrome / 16.0.912.63 Safari / 535.7“

robots.txt中没有任何内容可以禁止机器人。

编辑:这个网站在Django上运行,AngularJS正在为我的网页提供服务。我正在使用django-seo-js与prerender一起工作以改善SEO。

1 个答案:

答案 0 :(得分:1)

当我在Chrome中访问您的网页并将facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)作为User-Agent标题的值发送时,我也获得了404(我使用了ModHeader扩展程序),而使用普通Chrome用户的请求-Agent向我展示你的起始页就好了。

因此,如果您有任何插件,“防火墙”规则或类似的设置来对抗“机器人”的请求 - 可能会在FB刮刀的访问方面有点过于热心。
这似乎不是它(只是一个有根据的猜测,因为这通常是这些问题的原因),但正如你所说,

  

它抛出了一个Javascript堆栈跟踪。这似乎可能是由prerender引起的

- 如果您找到确切原因,请告知我们。