7

根据我的测试,Facebook 的爬虫不会像浏览器那样呈现客户端模板。

我想不惜一切代价避免使用网络服务器并为 Open Graph 对象构建 HTML 文件。我想通过 URL 即时生成元标记,但 Facebook 似乎无法做到这一点。

Facebook的人可以确认一下吗?我在#mobiledevcon 上询问了 Open Graph 的负责人,她说 Facebook 可以渲染像 {{value}} 这样的东西

我的元标记如下,它们在每个浏览器中都能很好地呈现。但是 Facebook Open Graph Debugger 只能看到原始文本,而不是插值内容。

<meta property="{{meta.property}}" content="{{meta.content}}">
4

3 回答 3

13

当您考虑它时,应该清楚为什么这不起作用。

Facebook 爬虫下载服务器提供的 HTML。Facebook 爬虫不会执行任何 JavaScript,就像所有爬虫都不会执行 JavaScript。这是由于安全限制和速度原因(他们没有时间在服务器上执行 JavaScript。)

没有办法解决这个问题。如果您希望爬虫为您的页面编制索引,您需要直接向他们提供您希望他们阅读的内容。

提示:您可以使用phantom.js 之类的东西在服务器端呈现您的页面并将其提供给爬虫。

于 2013-05-10T15:00:56.443 回答
2

将 ?_escaped_fragment_ 方法与预渲染服务一起使用。Facebook 将遵守与 Google 相同的可抓取 Ajax 规范。请参阅https://developers.google.com/webmasters/ajax-crawling/docs/specification

于 2015-05-19T11:13:12.337 回答