Wyciąganie tokena potrzebengo do zapytania.

0

Witam, piszę w Pythonie bota i mam pewien mały problem z logowaniem. Otóż należy przy logowaniu wysłać token w zapytaniu POST. Tylko nie wiem skąd i jak go wyciągnąć.

1

Pewnie da się go wyciągnąć ze źródła strony.
Przeglądarka też jakoś musi umieć go wysłać.

0

@some_ONE: Rzeczywiście, znalazłem odpowiedni token na stronie głównej. Dzięki za odpowiedź :)

0

@some_ONE:
Od razu się zapytam, bo nie ma co zakładać nowego wątku. Jakie wyrażenie regularne ułożyć do wyciągnięcia tokena z tego stringa?

<input name="authenticity_token" value="Tt9hZ7GANCF7lmUONKU1NhxN6wXScarimczHm576Vgr3x6VV6FY0lQCcWGF1sqfE7VqnC1FM0s1oXnioQjQoeg==" type="hidden">

Chciałbym w wyniku dostać:

Tt9hZ7GANCF7lmUONKU1NhxN6wXScarimczHm576Vgr3x6VV6FY0lQCcWGF1sqfE7VqnC1FM0s1oXnioQjQoeg

Wyrażenie ```
r'"authenticity_token" value=^[a-zA-Z0-9_]+$'

0

Nie używa się regex-ów do takich rzeczy...

Użyj BeautifulSoup4

import bs4
soup = bs4.BeautifulSoup(<HTML>, 'html.parser')

for target in soup.find_all('input'):
    if target['name'] == 'authenticity_token':
        print(target['value'])
0

BeautifulSoup4 zniweluje też ten problem, że token na stronie potrafi mieć trochę inną treść niż token wysyłany w POSTem?
Tak np. wygląda token ze strony:

uF6bMfCEk9DOXTzBFXtwIzQ4BJIJsq2HTWH1AlSpg1tKBEfn+nDwgaOUs1NTdapvO+pf7StQ4M0HkTvWJVSE9g

A tak wygląda token wysyłany POSTem:

uF6bMfCEk9DOXTzBFXtwIzQ4BJIJsq2HTWH1AlSpg1tKBEfn%2BnDwgaOUs1NTdapvO%2Bpf7StQ4M0HkTvWJVSE9g

1 użytkowników online, w tym zalogowanych: 0, gości: 1