Portál AbcLinuxu, 17. července 2025 07:23


Dotaz: Automatický login s Requests

29.12.2019 15:26 martin
Automatický login s Requests
Přečteno: 314×
Odpovědět | Admin
Ahoj, potřebuji automatické přihlášení na web .
Pomocí develop nástrojů v Chrome jsem zjistil potřebná data
ale stále se mi vrací prázdný řetezec.
Potřeboval bych lehké nakopnutí.
Díky.

def page_login(user, passwd):

    url = "https://marshallcode.tools/member-dashboard/"
    header = {
        "user-agent": "Mozilla / 5.0(X11;Linux x86_64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome81.0.4000.3Safari / 537.36"
    }
    values = {"login[user]": user,
              "login[user_password]": passwd,
              "doLogin": None}

    with requests.Session() as session:
        r = session.get(url, headers=header)
        print(r.content)
        p = session.post(url, data=values, headers=header)
        print(p.content)

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.12.2019 17:10 .
Rozbalit Rozbalit vše Re: Automatický login s Requests
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mně to funguje. Zkus vypsat i status_code a headers, třeba tam bude něco zajímavého.
29.12.2019 17:23 .
Rozbalit Rozbalit vše Re: Automatický login s Requests
Předpokládám, že už tyhle printy ti nic nevypisují. Teoreticky je možné, že ti nefungují následující requesty a hledáš problém v loginu. Pro následující requesty samozřejmě musíš použít stejný session objekt.
29.12.2019 17:37 martin
Rozbalit Rozbalit vše Re: Automatický login s Requests
To mě nenapadlo. GET request vrací ale POST ne. Každopádně p.status_code vrací přesměrování (302) ale "location" v p.headers je prázdné :(
29.12.2019 19:12 martin
Rozbalit Rozbalit vše Re: Automatický login s Requests
Vyřešeno. Prázdný "Location" znamenalo načíst pomocí GET ten samý link.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.