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 запросом, помогите решить проблему