@drqqv

Как решить проблему с куки в python requests?

Здравствуйте, нужна помощь тех, кто разбирается с куки. Помогите, пожалуйста, уже 3 день пытаюсь решить проблему...
Надо спарсить сайт, делаю вход по логину и паролю. После этого надо сделать post запрос для кое каких изменений на сайте. Проблема: если передавать куки (которые получил, когда вручную делал изменений на сайте) вручную в хэдер, то запрос проходит успешно - изменения применяются, но если передавать в хэдер куки, полученные из сессии request, то никакие изменения не применяются. (Заметил особенность: когда пробовал вставить вручную куки, полученные в режиме инкогнито, то запрос не давал изменений)
def authorization(login, password):
    user = fake_useragent.FakeUserAgent().random

    session = requests.Session()

    # Авторизация 
    datas = {
        '_username': str(login),
        '_password': str(password)
    }

    header = {
        'user-agent': user
    }

    # Получаем куки с главной страницы
    url = 'ссылка на сайт'
    session.get(url, headers=header)

    cookies = session.cookies.get_dict()
    print(cookies)


     # Запрос на авторизацию
    url = 'ссылка по которой идет авторизация'
    session.post(url, data=datas, headers=header)

    cookies = session.cookies.get_dict()
    print(cookies)

    header = {
        # Если сюда передавать куки полученные с браузера вручную, то все получается
        'cookie': 'PHPSESSID=42785d63bf8785a76f5e46f99ee39b5b',
        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
    }
    print(header['cookie'])

    # Выбираем нужные нам данные в меню настройки данных
    data = {
        'franchiseRegisterSettings[lastName]': '1',
        'franchiseRegisterSettings[firstName]': '1',
        'franchiseRegisterSettings[middleName]': '1',
        'franchiseRegisterSettings[birthday]': '1',
        'franchiseRegisterSettings[email]': '1',
        'franchiseRegisterSettings[card]': '1',
        'franchiseRegisterSettings[note]': '1',
        'franchiseRegisterSettings[loyaltyRulesURL]': 'Какая-то ссылка на сайте, при всех запросах одна и та же',
        'franchiseRegisterSettings[authType]': '0',
        'franchiseRegisterSettings[editAllowed]': '1',
        'franchiseRegisterSettings[suspendCard]': '1',
        'franchiseRegisterSettings[prolongateCard]': '1',
        'franchiseRegisterSettings[customerScheme]': '{"lastName":{"enabled":true,"required":true,"admin":true,"requiredAdmin":true},"firstName":{"enabled":true,"required":true,"admin":true,"requiredAdmin":true},"middleName":{"enabled":true,"required":false,"admin":true,"requiredAdmin":true},"birthday":{"enabled":true,"required":true,"admin":true,"requiredAdmin":false,"age":""},"gender":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false},"email":{"enabled":true,"required":true,"admin":true,"requiredAdmin":false},"card":{"enabled":true,"required":false,"admin":true,"requiredAdmin":false,"check":true},"passportSeries":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false},"passportNumber":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false},"passportDate":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false},"passportPlace":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false},"residencePlace":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false},"additionalPhone":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false},"carNumber":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false},"note":{"enabled":true,"required":false,"admin":true,"requiredAdmin":false},"promoCode":{"enabled":false,"required":false,"admin":false,"requiredAdmin":false}}',
        'franchiseRegisterSettings[_token]': 'WQKGeyFKgqodvIZWX74'
    }

    # Запрос на отображение полей ///// ВОТ ЭТОТ ЗАПРОС ПРОБЛЕМНЫЙ
    get_setting = Ссылка для post запроса
    log = session.post(get_setting,  data=data,  headers=header)
  • Вопрос задан
  • 640 просмотров
Решения вопроса 1
@drqqv Автор вопроса
Проблема была в том, что form data содержит 'franchiseRegisterSettings[_token]' который генерировался каждый раз новый при новой сессии, а он у меня был статичным. 3 дня я искал причину...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы