Python авторизация в Steam и создание файла с сессией

мне нужна функция, которая будет заходить в аккаунты Steam, из бд, и создавать файл с сессий, для того чтобы в дальнейшем не надо было проходить авторизацию. Вот как выглядит моя функция:

SESSIONS_DIR = 'sessions'
os.makedirs(SESSIONS_DIR, exist_ok=True)
DATABASE_PATH = 'date.db'

def create_steam_session():
conn = sqlite3.connect(DATABASE_PATH)
cursor = conn.cursor()

cursor.execute("SELECT login, password FROM users WHERE status='Wait'")
accounts = cursor.fetchall()

if accounts:
    
    login, password = accounts[0]
    print(f"Login: {login}, Password: {password}")
else:
    print("No accounts found.")
    return  

field_name = 'shared_secret'
shared_secret = get_account_info(account_name=login, field_name=field_name)
code = getcode(shared_secret)


login_url = "https://steamcommunity.com/login/home/?goto=login"


payload = {
    'username': login,
    'password': password,
    'twofactor_code': code,  
}

try:
    response = requests.post(login_url, data=payload)

    
    if response.status_code == 200:
        try:
            response_data = response.json()
            if response_data.get('success'):
                
                cookies = response.cookies.get_dict()
                session_file_path = os.path.join(SESSIONS_DIR, f"{login}.json")

                with open(session_file_path, 'w') as f:
                    json.dump(cookies, f)

                print(f"Session for {login} created and saved in {session_file_path}!")

                cursor.execute("UPDATE users SET status='Ready' WHERE login=?", (login,))
                conn.commit()
            else:
                print(f"Login failed for account {login}: {response_data.get('message')}")
        except json.JSONDecodeError:
            print(f"Response is not valid JSON: {response.text}")
    else:
        print(f"Request failed with status code {response.status_code}: {response.text}")

except Exception as e:
    print(f"An error occurred while creating session for {login}: {e}")

conn.close()

Но я получаю HTML страницу вместо куков в формате JSON. Функции по получению 2fa кода работают исправно. Помогите решить эту проблему, возможно я использую не тот метод для авторизации или нужно использовать какую то другую ссылку авторизации с API запросом, помогите решить проблему


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