遵循 50 次重定向后 curl 失败,但 wget 工作正常



我有一个实验性的网络爬虫,我注意到它无法读取某些页面,例如在某些特定域上,curl 说它在遵循 50 次重定向后失败,但 wget 可以很好地读取相同的域:

curl 'netflix.com' -L -o 'output.txt'

结果:

curl: (47) Maximum (50) redirects followed

输出.txt文件中没有数据。

虽然此命令工作正常:

wget netflix.com

关于什么会导致这种情况的任何想法?我怀疑远程服务器是否根据两个不同的用户代理处理请求。

这可能是因为你没有告诉curl使用cookie,除非你要求它这样做,否则它不会这样做 - 而wget默认启用它们。

使用 --

cookie 或 --cookie-jar 选项启用 Cookie。

--max-redirs N

用于限制重定向数量的选项。 如前所述,默认值为 50。

您看到的"47"是达到重定向限制的错误代码。

默认情况下,wget的重定向限制为 20,因此肯定还有其他事情发生,因为 curl 的重定向更高。

在我的系统上运行相同的命令工作正常,只有大约 3 - 5 个重定向。

您可以使用--verbose选项来跟踪这些重定向是什么,并可能将它们与wget的默认输出进行比较。

默认情况下,Cookie 在 wget 上启用,而不是在 curl 上启用,正如@DanielStenberg所提醒的那样,所以希望他能回答并被接受。

最新更新