0

我使用 libcurl 获取网页的源代码,一切顺利,直到获得“www.macys.com”的源代码。

如果没有 CURLOPT_FOLLOWLOCATION 选项,我的程序将一无所获,但是使用此选项时,重定向位置始终为“/”,除非我设置 CURLOPT_MAXREDIRS 选项,否则 curl_easy_perform 函数将不会返回。

我的问题是如何使用 libcurl 获取此网页的源代码?非常感谢。

我的 libcurl 版本:7.23.1,操作系统:CentOS 6.0(final)x64

4

2 回答 2

0

如果服务器不断重定向客户端,并且您要求客户端遵循重定向,那么您希望它做什么?

唯一的选择是在一定数量的步骤后停止,这就是 CURLOPT_MAXREDIRS 的用途。

发生这种情况的原因主要是因为该站点正在检查您使用的 curl 未提供的客户端特定详细信息(用户代理、cookie、referer 或类似信息)。您通常可以使您的 curl 请求更类似于浏览器的请求,然后避免这种影响。

于 2012-05-01T17:58:28.187 回答
0

要么禁用 CURLOPT_FOLLOWLOCATION 并手动跟踪重定向以确保不会发生循环,要么将 CURLOPT_MAXREDIRS 设置为只能通过自重定向到达的疯狂数字 (10)。

于 2012-05-01T19:36:09.647 回答