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

adr*_*TNT 5 php redirect curl wget web-crawler

我有一个实验性的网络爬虫,我注意到它无法读取某些页面,例如在某些特定的域名上,curl说它在跟踪50次重定向后失败但是wget读取同一个域就好了:

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

结果:

curl: (47) Maximum (50) redirects followed

output.txt文件中没有数据.

虽然这个命令工作正常:

wget netflix.com

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

vgo*_*off 7

--max-redirs是用于限制重定向数量的选项.如上所述,默认值为50.

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

wget默认情况下,重定向限制为20,因此当卷曲的重定向更高时肯定会发生其他事情.

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

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

默认情况下启用Cookie wget,而不是curl@DanielStenberg提醒,所以希望他会回答并被接受.


Dan*_*erg 6

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

使用--cookie--cookie-jar选项启用cookie.