【问题标题】:Website code is weird when scraped by Facebook网站代码被 Facebook 抓取时很奇怪
【发布时间】:2017-09-16 04:05:28
【问题描述】:

从今天下午开始,Facebook 无法再读取我正在开发的网站的 og 标签。当我在源代码中清楚地看到所有属性时,Facebook 调试器说我的所有属性(og:url、og:type、og:title、og:image、og:description 等)都丢失了。

当我查看此页面(或此域上的任何其他页面)的源时,一切正常。

但是,当我在 Facebook 的调试器中输入该页面并使用“查看我们的抓取工具对您的 URL 看到的确切内容”时,代码全都乱七八糟,缺少单词和空格。事实上,包含 og 属性的整个部分都丢失了。

发生了什么事?我最近没有对网站进行任何更改,并且之前运行良好。最近唯一改变的是我的 dns 设置,但这不应该影响 Facebook...

有人知道我在这里缺少什么吗? 许多人在其他线程中建议问题是因为路径是相对的而不是绝对的(例如 og:image,例如),但这显然不是我的问题,因为我的路径是绝对的,并且所有我的 og属性只是在作为 Facebook 抓取时没有显示。

谢谢

【问题讨论】:

    标签: wordpress facebook-graph-api


    【解决方案1】:

    我也在我的网站上发现了这个问题。这是因为 W3 Total Cache 的 Minify 功能。禁用它并清除所有缓存,然后就可以开始了。

    【讨论】:

    • 完全解决了,谢谢!问题是,我使用 W3 Total Cache 的 Minify 功能已经一年多了,为什么现在才开始出现问题?我一直保持相同的设置。
    • Facebook 最近可能会更改其爬虫。
    【解决方案2】:

    有时浏览器会自动修复一些 HTML 以正确呈现页面,例如关闭标签、添加缺失的语义标签等。但机器人对有效 HTML 的要求更高。

    让我们从您分享的那个页面的源代码的前 12 行开始。这是浏览器收到的:

    <!doctype html>
    <!--[if IE 8]><html
    class="ie8" lang="fr-FR" prefix="og: http://ogp.me/ns#"> <![endif]-->
    <!--[if IE 9]><html
    class="ie9" lang="fr-FR" prefix="og: http://ogp.me/ns#"> <![endif]-->
    <!--[if gt IE 8]><!--><html
    lang="fr-FR" prefix="og: http://ogp.me/ns#"> <!--<![endif]--><head><link
    rel="stylesheet" type="text/css" href="http://cdn.vedettequebec.com/wp-content/cache/minify/ef20c.css?x41125" media="all" /><meta
    charset="UTF-8" /><meta
    name="viewport" content="width=device-width, initial-scale=1.0"><link
    rel="pingback" href="http://vedettequebec.com/xmlrpc.php" /><meta
    name="author" content="BadassB"><link
    

    如您所见,属性被包装到下一行,这是一种有效的,大多数浏览器都会处理,但看起来 Facebook scraper 修剪了 \n 字符和像这样解释代码:

    <!doctype html><!--[if IE 8]><htmlclass="ie8" lang="fr-FR" prefix="og: http://ogp.me/ns#"> <![endif]--><!--[if IE 9]><htmlclass="ie9" lang="fr-FR" prefix="og: http://ogp.me/ns#"> <![endif]--><!--[if gt IE 8]><!--><htmllang="fr-FR" prefix="og: http://ogp.me/ns#"> <!--<![endif]--><head><linkrel="stylesheet" type="text/css" href="http://cdn.vedettequebec.com/wp-content/cache/minify/ef20c.css?x41125" media="all" /><metacharset="UTF-8" /><metaname="viewport" content="width=device-width, initial-scale=1.0"><linkrel="pingback" href="http://vedettequebec.com/xmlrpc.php" /><metaname="author" content="BadassB"><link
    

    您现在看到问题了吗?由于在标签名称旁边添加了属性,代码被破坏,导致大量“未关闭的标签”。例如,检查 &lt;html&gt; 标记是否被转换为 &lt;htmlclass&gt; 并且其结束标记将为 &lt;/html&gt;,因为标记名称后面没有任何内容,从而使该标记未闭合。

    禁用任何可能会损害您的 HTML 的插件,如 HTML 压缩器之类的插件。如果有“将属性换行”之类的内容,请检查设置。

    【讨论】:

    • 我确实看到了你提到的问题,但我不明白为什么会这样做......最后确实是缩小器插件的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多