提问人:adrianTNT 提问时间:12/17/2013 最后编辑:adrianTNT 更新时间:10/7/2023 访问量:14067
Curl 在遵循 50 次重定向后失败,但 wget 工作正常 [已关闭]
Curl fails after following 50 redirects but wget works fine [closed]
问:
这个问题似乎不是关于特定的编程问题、软件算法或程序员主要使用的软件工具。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释该问题可能在哪里得到回答。
上个月关闭。
社区上个月审查了是否重新讨论这个问题,并将其关闭:
原始关闭原因未解决
我有一个基于PHP的实验性网络爬虫,我注意到它无法读取某些页面,例如在某些特定的域上,curl说它在遵循50次重定向后失败了,但wget可以很好地读取相同的域:
curl 'netflix.com' -L -o 'output.txt'
结果:
curl: (47) Maximum (50) redirects followed
输出 .txt 文件中没有数据。
虽然此命令工作正常:
wget netflix.com
关于什么原因会导致这种情况的任何想法?我怀疑远程服务器是否基于两个不同的用户代理处理请求。
答:
--max-redirs N
是用于限制重定向次数的选项。如前所述,默认值为 50。
您在那里看到的“47”是达到重定向限制的错误代码。
默认情况下,重定向限制为 20,因此肯定还有其他事情发生,因为 curl 的重定向更高。wget
在我的系统上运行相同的命令可以正常工作,并且只有大约 3 - 5 个重定向。
您可以使用该选项来跟踪这些重定向是什么,并可能将它们与 的默认输出进行比较。--verbose
wget
Cookie 默认启用,而不是 ,正如 @DanielStenberg 提醒的那样,所以希望他能回答并被接受。wget
curl
评论
这可能是因为你没有告诉 curl 使用 cookie,除非你要求它这样做,否则它不会这样做 - 而 wget 默认启用它们。
使用 --cookie 或 --cookie-jar 选项启用 Cookie。
下一个:PHP将纯文本转换为主题标签链接
评论