我希望有人能帮我解决这个问题。我已经尝试了一段时间了,尝试了各种各样的变化,但似乎无法让它发挥作用。
我正在尝试编写一个登录方法https://login.three.ie/从 */My_account_balance 检查帐户余额
我尝试过各种 wget 命令,但从我读到的内容来看,curl 更有可能完成这项任务。
我一直在尝试在网上遇到的变体,包括来自 stackoverflow 的变体,但似乎没有任何效果。
这是我尝试的最后一个:
curl -X POST -c cookies.txt -u "Uern@me:P@ssw0rd" https://login.three.ie/
这确实会在此处保存 cookies 文件:
$ cat cookies.txt
Netscape HTTP Cookie File
#http://curl.haxx.se/docs/http-cookies.html
This file was generated by libcurl! Edit at your own risk.
HttpOnly_login.three.ie FALSE / FALSE 1433988274
laravel_session eyJpdiI6IkFZWmxvZ2oyXC9NNGVIbHVpejZwRWp3PT0iLCJ2YWx1ZSI6Imxkd25UKzBoMldiQlhYZVJnVUpuNUVsblZ1cGJYZWcwM2E1bTtIWHRiQ2pwV0VwemJ4NFlYcDlzTndSeFRNanpwdDhMMTIrS2RGZGdGd0RNZU1yREJ3PT0iLCJtYWMiOiI0NWUwYzc1TY4ODI3ZmY3ODY5NjliODkxODMyODIzMjQwNmNkNjljNTE2NzQxNmQ4MzhhNDljNTdjM2QwZGY1In0%3D
但是当我尝试重新使用 cookie 时,看起来好像有一个重定向或类似的东西,因为这是我得到的结果:
$ curl -b cookies.txt https://my3account.three.ie/My_account_balance
<html><head><title>302 Moved Temporarily</title></head>
<body bgcolor="#FFFFFF">
<p>This document you requested has moved temporarily.</p>
<p>It's now at <a href="https://sso.three.ie/mylogin//login?auth-
required=seamless&service=https%3A%F%
2Fmy3account.three.ie%2FMy_account_balance">https://sso.three.ie/mylogin//login?auth-required=seamless&service=https%3A%2F%2Fmy3account.three.ie%2FMy_account_balance</a>.</p>
我不明白这里发生了什么。有谁知道出了什么问题,或者更好的是,如何补救?
谢谢
答案1
他们的网站可能通过首先将他们重定向到登录页面来验证存储在 cookie 中的会话。然后他们的登录页面将重定向回重定向期间设置为“服务”参数的相应页面。
默认情况下,Curl 不遵循重定向。使用以下选项覆盖此-L
设置:
$ curl -L -b cookies.txt https://my3account.three.ie/My_account_balance
答案2
您可以使用-L
curl 选项让其遵循重定向。