【问题标题】:file_get_contents failed to open stream: HTTP request failed! HTTP/1.1 463file_get_contents 无法打开流:HTTP 请求失败! HTTP/1.1 463
【发布时间】:2016-06-02 05:07:50
【问题描述】:

我正在尝试从其他站点获取 RSS。他们都使用file_get_contents 工作正常,除了一个链接给我这个错误:

警告:file_get_contents(http://alwatan.kuwait.tt/rss.ashx):打开流失败:HTTP 请求失败! HTTP/1.1 463

我下载了所有文件,并且都有:

<rss version="2.0">

但有错误的链接有:

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

这是它们之间的唯一区别。

【问题讨论】:

标签: php rss


【解决方案1】:

在我看来,该提要不允许您抓取它。

463 受限客户端:您的资源无法访问 客户端软件。此请求已被阻止。请重试您的 来自不同客户的请求。

DOSarrest Internet Security 是基于云的完全托管 DDoS 保护服务。此请求已被 DOSarrest 阻止,原因是 上述违规。如果您认为自己被错误阻止 请联系 scripts.local 的管理员解决此问题。

您可以尝试使用 curl 代替 file_get_contents 来测试这一点

<?php

$ch = curl_init("http://alwatan.kuwait.tt/rss.ashx");

curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_REFERER, "http://www.example.org/yay.htm");
curl_setopt($ch, CURLOPT_USERAGENT, "spider");

curl_exec($ch);
curl_close($ch);

?>

正如阿齐兹所说,如果你设置了代理和被推荐,你就可以通过。

【讨论】:

  • 我还会模仿用户代理和推荐,这是两个最常见的检查标头。
  • 让我试试看他们是否允许
  • 谢谢,我尝试了 cURL,但仍然无法正常工作,但是当我使用 cURL 选项时,我发现 CURLOPT_USERAGENT, "spider" 它解决了我的问题,现在一切都很好
  • 很高兴你得到它的工作,如果你满意,请接受答案。
猜你喜欢
  • 2012-03-23
  • 2020-01-21
  • 2023-01-01
  • 2017-08-07
  • 2011-05-31
  • 2014-03-25
  • 1970-01-01
  • 2023-04-06
相关资源
最近更新 更多