【问题标题】:Facebook - Error parsing input URL, no data was cached, or no data was scrapedFacebook - 解析输入 URL 时出错,没有数据被缓存,或者没有数据被抓取
【发布时间】:2014-11-03 01:26:14
【问题描述】:

经过研究,我发现很多人都面临同样的问题。但到目前为止我还没有解决,这是在我将服务器切换到 linode.com 后发生的

让我们举个例子。 www.acemark2u.com 是 linode 服务器下托管的网站之一, 当我尝试在https://developers.facebook.com/tools/debug/og/object/ 中调试时,它无法正确获取抓取信息,如果我尝试使用 www.acemark2u.com/about-us 页面之一,它只会显示错误“解析输入时出错URL,没有数据被缓存,或者没有数据被抓取。”

奇怪的事情发生了。当我尝试使用 ip 地址 106.187.35.114/~acemark2 进行调试时,一切都很顺利。获取很好,页面没有错误404。

我怀疑它可能是由“gethostbyaddr”函数引起的(参考:http://www.gearhack.com/Forums/DisplayComments.php?file=Computer/Network/Internet/Preventing_Your_Web_Server_From_Blocking_Facebook_Share),但到目前为止我还没有解决方案。

【问题讨论】:

    标签: php facebook facebook-opengraph


    【解决方案1】:

    对我来说,解决方案是替换 DNS A 记录

    example.sk  3600    1.2.3.4
    www.example.sk  3600    1.2.3.4
    

    example.sk  3600    1.2.3.4
    *.example.sk    3600    1.2.3.4
    

    【讨论】:

      【解决方案2】:

      我们在我们的一个网站上遇到了类似的问题。

      我们通过禁用 apache mod_security 解决了这个问题,同时我们使用 facebook 对象调试工具“获取新的抓取信息”

      【讨论】:

        【解决方案3】:

        对于遇到相同问题但原因不同的人,我发现了一些有趣的事情,即 Facebook 如何“抓取”页面,在进行一些试验时检查服务器的日志。

        首先:如果您从未尝试与 FB 共享页面,则 FB 从未尝试抓取该页面,并且 如果您仅将 url 放入调试工具中,它不会尝试这样做 . 这是第一个原因,因为您收到错误消息:它只是表明 FB 在页面上没有信息,您必须“强制”它抓取页面。

        当你第一次尝试分享一个页面时,FB 会抓取它(询问你的服务器页面的前 40k 并分析 opengraph 标签)。 可能发生的情况是您看不到图像:Facebook Share Dialog does not display thumbnails one first load

        原因是FB在幕后仍在抓取您的页面并缓存图像。下一次,其实你也有这个形象。 如何解决?预缓存:https://developers.facebook.com/docs/sharing/best-practices#precaching

        或简单地添加

        <meta property="og:image:width" content="450"/>
        <meta property="og:image:height" content="298"/>
        

        【讨论】:

        • 我知道你发布这个答案已经有一分钟了,但你能给我参考一下,你发现 FB 只抓取页面的前 40k 吗?
        【解决方案4】:

        这个问题已经接受了答案,但万一这个答案对任何人都不起作用,这里对我有用。

        我在og:url 中提供的 URL 是受保护的 URL,即只有那些已登录的用户才能查看该 URL 指向的页面。当我将 URL 更改为指向我的主页时,登录或注销的用户都可以查看该主页。 http://www.ercafe.com 一切正常。

        【讨论】:

          【解决方案5】:

          我终于找到了解决方案。

          在我的默认 DNS A/AAAA 记录中,我没有删除这几个 ip

          2400:8900::f03c:91ff:fe73:a95d  Default
          mail    2400:8900::f03c:91ff:fe73:a95d  Default
          www 2400:8900::f03c:91ff:fe73:a95d  Default
          

          这就是为什么有些用户在通过正确的网址访问时会指向上述 IP。

          【讨论】:

          • 我猜你也得等一下?
          猜你喜欢
          • 2015-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-09
          • 1970-01-01
          • 2021-08-08
          • 1970-01-01
          相关资源
          最近更新 更多