前几天我试图从网站上获取RSS信息,但是当我尝试使用PHP加载它时,它返回了403错误。
这是我的PHP代码:
<?php
$rss = file_get_contents('https://hypixel.net/forums/-/index.rss');
echo $rss;
?>
我得到的错误是:
failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
我必须说从浏览器定期加载它可以正常工作,但是当我尝试使用PHP或任何其他服务器端方法加载它时,它将无法正常工作。
答案 0 :(得分:3)
有些人不喜欢服务器访问他们的东西。它们为人类消费者提供服务,而不是机器人。因此,它们可能包含一些代码,用于检查您是否实际上是使用Web浏览器的人,这是您天真的PHP脚本无法提供的。因此,第三方返回403 Forbidden错误,表示您的程序禁止访问它。
当然,有很多方法可以解决这个问题,具体取决于它的实施方式。最明显的事情是发送假装为浏览器的User-Agent
标头。但是服务器可能会做比这更聪明的检查,而且道德上有道理。