Usando o curl com cookies

2

Espero que alguém possa me ajudar nessa. Eu tenho tentado isso por um tempo agora, com todos os tipos de variações e parece que isso não funciona.

Estou tentando criar um script para fazer login no link para verificar o saldo da conta de * / My_account_balance

Eu tentei todos os tipos de comandos do wget, mas pelo que li, o curl é mais provável de realizar essa tarefa.

Eu tenho tentado variações que encontrei on-line, incluindo aqui no stackoverflow, mas nada parece funcionar.

Aqui está o último que eu tentei:

    curl -X POST -c cookies.txt -u "Uern@me:P@ssw0rd" https://login.three.ie/

Isso salva o arquivo de cookies aqui:

    $ 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

Mas quando tento reutilizar o cookie, parece que há um redirecionamento ou algo assim, pois é isso que eu recebo:

    $ 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>

Eu não entendo o que está acontecendo aqui. Alguém tem uma idéia do que está errado, ou melhor, como remediar isso?

Obrigado

    
por user1718443 11.06.2015 / 02:34

2 respostas

3

É possível que o site deles esteja autenticando a sessão armazenada nos cookies, redirecionando-os primeiro para a página de login. Em seguida, a página de login deles será redirecionada para a página apropriada, conforme definido durante o redirecionamento deles como o parâmetro "serviço".

Curl não segue redirecionamentos por padrão. Substituir isso usando a opção -L :

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

Referência

    
por 17.07.2017 / 10:26
0

Você pode usar a opção -L para curl para seguir redirecionamentos.

    
por 11.06.2015 / 12:06