Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook-解析输入URL时出错,未缓存任何数据或未刮取任何数据_Php_Facebook_Facebook Opengraph - Fatal编程技术网

Php Facebook-解析输入URL时出错,未缓存任何数据或未刮取任何数据

Php Facebook-解析输入URL时出错,未缓存任何数据或未刮取任何数据,php,facebook,facebook-opengraph,Php,Facebook,Facebook Opengraph,经过研究,我发现很多人都面临着同样的问题。但到目前为止,我还没有找到解决方案,这是在我将服务器切换到linode.com之后发生的 让我们举个例子。www.acemark2u.com是linode服务器下托管的网站之一, 当我尝试在中调试时,它无法正确获取刮取信息,如果我尝试使用www.acemark2u.com/about-us页面之一,它只会显示错误“解析输入URL时出错,未缓存任何数据,或未刮取任何数据。” 奇怪的事情发生了。当我尝试使用ip地址106.187.35.114/~acemar

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

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

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


我怀疑这可能是由“gethostbyaddr”函数(ref:)引起的,但到目前为止我还没有解决方案

我终于找到了解决办法

在我的默认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

这个问题已经接受了答案,但如果这个答案对任何人都不起作用,那么这就是我的答案


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

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

首先:如果您从未尝试与FB共享页面,FB也从未尝试将其刮取,并且如果您仅将url放入调试工具中,FB将不会尝试这样做。 这是第一个原因,因为你得到了错误:它只是说,FB没有在页面上的信息,你必须“强迫”它刮页面

当您第一次尝试共享页面时,FB会将其删除(要求您的服务器提供页面的前40k部分,并分析opengraph标记)。 可能发生的情况是,您看不到图像:

原因是FB在幕后仍在抓取您的页面并缓存图像。下一次,事实上,你也有图像。 如何解决?预缓存:

或者简单地加上

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

我们的一个网站也有类似的问题


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

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

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


我猜你也得等一等?我知道你发布这个答案已经有一分钟了,但是你能给我一个你发现FB只抓取了页面前40k的参考资料吗?
example.sk  3600    1.2.3.4
*.example.sk    3600    1.2.3.4