【问题标题】:Facebook Linter / Open Graph cuts off the URL pathFacebook Linter / Open Graph 截断 URL 路径
【发布时间】:2011-12-04 00:30:12
【问题描述】:

我一直在搜索网络和 StackOverflow 以寻求答案,但我没有发现完全适用于我的情况的案例。我正在使用 Facebook Linter 来调试 FB 抓取我的元标记的方式。如果我在一个简单的 About 页面上使用它,它可以很好地提取所有内容,尤其是 og:url 元标记。

见: http://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Felectionstats.com%2Fabout%2Fprivacy_policy

当我抓取正常的内容页面时,问题就开始了。尽管我已经三次检查我的标签是否正确,但 FB Linter 会从 URL 中删除 URI,因此它报告 og:url 标签只有域名,electionstats.com/!

见: http://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Felectionstats.com%2Fsearch%2Fyear_from%3A2010%2Fyear_to%3A2010%2Foffice_id%3A6

页面上实际存在的 og:url 标签如下所示:

我怀疑这是 FB 缓存页面的问题,因为在我的 About 页面上,我进行了快速代码更改,更改了元标记输出,然后通过 Linter 重新运行同一页面,Linter 显示这些快速的变化,没有失败,每次。但由于某种原因,当我在主要内容页面(/search/ 页面)上尝试数十种不同的 URL 组合时,我总是得到一个截止 URL,因此我的主页只有元字段。

我什至推测 FB 会忽略看起来像“搜索”页面的 URL,所以我重新路由 URL 和标题标签以使用命名法“探索”而不是“搜索”,但这仍然有效什么都没有——URI 仍然会被截断。

【问题讨论】:

    标签: html facebook facebook-graph-api facebook-like meta-tags


    【解决方案1】:

    哎呀,太尴尬了。

    我在每个页面请求的开头都有代码,用于检测用户的浏览器是否接受 cookie;如果没有,它会将用户踢回主页。 Facebook 网络爬虫与其他网络爬虫一样,不使用 cookie。因此,它不断返回主页并读取主页的 og/meta 标签。我的代码更大的意外后果是它踢出了所有试图了解我的网站的网络爬虫,包括谷歌的。

    修复:如果用户代理字符串与常见网络爬虫提供的 UA 部分匹配,则跳过 cookie 处理检查,例如 http://www.cult-f.net/detect-crawlers-with-php/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-13
      • 2020-05-21
      • 2015-09-28
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多