无法使用curl下载文件

无法使用curl下载文件,curl,Curl,我正试图下载一个带有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 'userCred

我正试图下载一个带有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

这对我来说很好

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编写的cookies,但这是另一章

编辑:你说得对。毕竟我没有登录。正确的登录方式是:

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文件后发现了这一点,但只有在那时。

这对我来说很好

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编写的cookies,但这是另一章

编辑:你说得对。毕竟我没有登录。正确的登录方式是:

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时,我使用Firefox中设置的相同会话id下载了带有curl的zip文件后,我发现了这一点,但只有在那时。

如果您登录该页面。在右侧,如果您正在登录,则有3个选项:(Facebook应用程序、下载所有曲目(GPX格式)和查看所有曲目)。当我执行第二句话下载源代码时,我看不到这些选项。看来我没有登录。有什么帮助吗?@user650034:你说得对。它不起作用,但我知道了。我以前没有遇到过这种特殊的登录方案。谢谢Flesk,但它不起作用,zip文件不是文件文件,只是html文件,你可以看到里面没有登录。有什么帮助吗?@user650034:你确定你用过我编辑的方法吗?请注意,在登录之前对的请求非常重要,因此需要调用3次curl。我自己也试过了,它对我非常有效。我得到一个包含我所有gpx文件的zip文件。@user650034:当然,您必须更改第三个url中的用户ID,但如果您登录到该页面,我认为您已经这样做了。在右侧,如果您正在登录,则有3个选项:(Facebook应用程序、下载所有曲目(GPX格式)和查看所有曲目)。当我执行第二句话下载源代码时,我看不到这些选项。看来我没有登录。有什么帮助吗?@user650034:你说得对。它不起作用,但我知道了。我以前没有遇到过这种特殊的登录方案。谢谢Flesk,但它不起作用,zip文件不是文件文件,只是html文件,你可以看到里面没有登录。有什么帮助吗?@user650034:你确定你用过我编辑的方法吗?请注意,在登录之前对的请求非常重要,因此需要调用3次curl。我自己也试过了,它对我非常有效。我得到一个包含所有gpx文件的zip文件。@user650034:当然,您必须更改第三个url中的用户ID,但我想您已经这样做了?