【问题标题】:PHP: Curl can't grab a text-only page on my own sitePHP:Curl 无法在我自己的网站上抓取纯文本页面
【发布时间】:2009-12-03 18:52:03
【问题描述】:

我正在尝试在 php 中使用 curl 从我自己的 Web 服务器中获取页面。该页面非常简单,只有一些纯文本输出。但是,它返回“null”。我可以使用它成功检索其他域和我自己的服务器上的其他页面。我可以在浏览器中看到它就好了,我可以用命令行 wget 来抓取它就好了,只是当我尝试用 curl 抓取那个特定页面时,它只是显示为空。我们无法使用 file_get_contents,因为我们的主机已禁用它。

为什么会发生这种不同的行为?

【问题讨论】:

  • 你能把这个页面的链接放上去吗?
  • 你试过 curl_error() 吗? de2.php.net/curl_error
  • @Pekka:很遗憾,我不能与公众分享该页面。而且 curl_error() 不会咳出任何东西。我希望“网站在浏览器中显示良好,而不是卷曲显示”本身就表明了一些事情......
  • 可以发布您的代码吗?它使人们在看到它时更容易提供帮助。 :)
  • 请求的头部响应是什么?确保启用标头作为响应输出的一部分。 CURLOPT_HEADER 是选项。

标签: php curl


【解决方案1】:

发现问题。我将我的 url 放在 curl_init() 中没有的地方,而那个地方正在截断查询字符串。一旦我将它移回 curl_init,它就起作用了。

【讨论】:

    【解决方案2】:

    试试setting curl 的用户代理。有时主机会通过阻止 wget 或 curl 之类的东西来阻止“机器人” - 但通常他们只是通过检查用户代理来做到这一点。

    【讨论】:

      【解决方案3】:

      您应该检查curl_error() 的输出并查看http 服务器的日志文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-15
        • 2021-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多