php - 请求重定向,即使 CURLOPT_FOLLOWLOCATION 设置为 FALSE

标签 php curl libcurl

我是 PHP 新手。我搜索了 StackOverflow 并按照类似问题的答案中的说明进行操作。但是,这些说明对我不起作用。

问题是:

我正在尝试使用 PHP cURL 获取 HTML 进行解析。 <强> http://actas.rfef.es/actas/NPortada 这是一个可公开访问的页面。当我通过浏览器的地址栏请求页面时,它工作正常。但是,如果请求是通过 cURL 发出的,我将被重定向到 http://actas.rfef.es/actas/NLogin (0 字节空白页)。 我认为 useragent 可能是个问题并将 curl 的用户代理值和 followlocation 设置为 false,但它仍然重定向!

这是我的代码:

$home="http://actas.rfef.es/actas/NPortada";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$home);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER, TRUE);
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:18.0)Gecko/20100101 Firefox/18.0");
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch,CURLOPT_COOKIEJAR, "cookies.txt");
echo curl_exec($ch);
curl_close($ch);

为什么它会重定向,即使 followLocation 设置为 false?该目标页面中没有元刷新标签。

如何避免被重定向并获取目标页面的html?我做错了什么?

过去 3 天我一直在为这个问题苦苦挣扎。请问有人能帮我吗?提前致谢。

最佳答案

浏览器正常!但是 curl(在 php 上)不起作用!然后看下面

始终检查命令行上的 curl 选项!因为它是如此简单!

  1. curl < url to visit >

  2. 查看浏览器开发工具的请求头!

和...

  1. 使用浏览器的请求 header 进行 curl

    curl < url to visit >

    -A "User-Agent"

    -e "Referer"

    --cookie "Cookie Key:value"

    等...

在你的情况下,

http://actas.rfef.es/actas/NPortada在浏览器上运行良好,但在 curl 上运行不佳

您可以使用 curl -v http://actas.rfef.es/actas/NPortada 查看重定向

并查看浏览器并使用开发工具....然后没有建立重定向!

enter image description here

并使用浏览器的请求 header 重试 curl! User-Agent 不工作,Referer 也不工作。

然后尝试使用 cookie 选项!

curl -v --cookie "JSESSIONID=B2F73A51E07D624FB205A114B2CC5D19" "http://actas.rfef.es/actas/NPortada"

我找到了解决方案。 http://actas.rfef.es/actas/NPortada必须用 cookie 请求!

关于php - 请求重定向,即使 CURLOPT_FOLLOWLOCATION 设置为 FALSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638862/

相关文章:

libcurl - 与 libcurl 的持久连接

php - CURLOPT_POST 与 CURLOPT_POSTFIELDS : Is CURLOPT_POST option required?

c++ - libcurl 输出到变量而不是文本文件

php - 显示大量带有类的表单行

php - 正则表达式的可变长度lookbehind-assertion替代方案

php - 如何在 Laravel 4 中使用 SHA1 加密代替 BCrypt?

php - 在Dockerfile中安装使用OpenSSL和zlib编译的cURL

php - PHP 的 JSON 转换

php - 使用 PHP 从网站抓取数据

php - 将 cURL 请求的结果转换为表单