我正在尝试使用curl下载文件。要做到这些,首先我必须登录才能下载文件。我正在尝试卷曲,但它不起作用。我看到HTTP标头,我不明白为什么它不起作用。任何帮助表示赞赏。 我使用的命令是:
curl -A 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091030 Gentoo Firefox/3.5.4' --referer http://www.sportstracklive.com/signin -d 'userCredentialsForm.userCredentials.email=USERNAME%40gmail.com&userCredentialsForm.userCredentials.password=PASSWROD&_target1=Login' https://www.sportstracklive.com/signin -c cook.txt -v > pepelu
curl -A 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091030 Gentoo Firefox/3.5.4' --referer http://www.sportstracklive.com/signin -b cook.txt -v http://www.sportstracklive.com/user/username > pepelu2
答案 0 :(得分:0)
这对我来说很好。
curl -L -c trackcookie.txt -d 'userCredentialsForm.userCredentials.email=flesk@gmail.com&userCredentialsForm.userCredentials.password=flesk&_target1=Login' https://www.sportstracklive.com/signin > track.html
如果您在登录后想要任何其他页面,则必须使用-b trackcookie.txt
:
curl -L -b trackcookie.txt https://www.sportstracklive.com/user/pepelu > pepelu.html
您始终需要-L
选项才能登录基于cookie的身份验证页面,因为cookie需要在任何html之前作为标题的一部分发送,因此需要重定向。例外是由javascript编写的cookie,但这是另一章。
编辑:你是对的。毕竟我没有登录。正确的登录方式是:
curl -Lc trackcookie.txt http://www.sportstracklive.com/ > /dev/null
curl -Lb trackcookie.txt -d 'userCredentialsForm.userCredentials.email=flesk@gmail.com&userCredentialsForm.userCredentials.password=flesk&_target1=Login' https://www.sportstracklive.com/signin > /dev/null
curl -Lb trackcookie.txt http://www.sportstracklive.com/live/track/gpx?userid=31746 > mytracks.zip
在您注销后,cookie实际上仍然存在,因此看起来这是一系列服务器请求,它们确定cookie中的会话ID是否与有效会话相对应。在我登录后使用与Firefox设置相同的会话ID时,我用curl下载zip文件后想出来,但只有这样。