将 curl 与 cookie 结合使用

将 curl 与 cookie 结合使用

我希望有人能帮我解决这个问题。我已经尝试了一段时间了,尝试了各种各样的变化,但似乎无法让它发挥作用。

我正在尝试编写一个登录方法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&amp;service=https&#37;3A&#37;F&#37;                   
    2Fmy3account.three.ie&#37;2FMy_account_balance">https://sso.three.ie/mylogin//login?auth-required=seamless&amp;service=https&#37;3A&#37;2F&#37;2Fmy3account.three.ie&#37;2FMy_account_balance</a>.</p>

我不明白这里发生了什么。有谁知道出了什么问题,或者更好的是,如何补救?

谢谢

答案1

他们的网站可能通过首先将他们重定向到登录页面来验证存储在 cookie 中的会话。然后他们的登录页面将重定向回重定向期间设置为“服务”参数的相应页面。

默认情况下,Curl 不遵循重定向。使用以下选项覆盖此-L设置:

$ curl -L -b cookies.txt https://my3account.three.ie/My_account_balance

参考

答案2

您可以使用-Lcurl 选项让其遵循重定向。

相关内容