@Jimm24

Не могу получать ответ в авторизации через python?

Пытаюсь разобраться с библиотекой requests
В общем пытаюсь авторизироватmся на сайте не пойму как это сделать, в ответе не вижу, что я авторизирован.
Не могу найти, где разобран конкретно вариант с формой js, может кто подскажет как авторизоваться на сайте с такой формой.

Код
import os
import requests
from dotenv import load_dotenv

load_dotenv()

data = {
    "captcha": "",
    "email": f"{os.getenv('My_email')}",
    "pass": f"{os.getenv('some_pass')}"
}

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
  }

variable = requests.Session()


redir = variable.get("https://texttospeech.ru/api/v1/login")
responce = variable.post("https://texttospeech.ru", headers=headers, data=data, allow_redirects=True)

print(responce.text)
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
У меня работает так:
1. Авторизация:
import requests

url = 'https://texttospeech.ru/api/v1/login'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0',
    'Content-Type': 'text/plain;charset=UTF-8',
}

data = {"email": "sample@email.com", "pass": "password", "captcha": ""}

session = requests.Session()
response = session.post(url, json=data)

print(response.text)

65ee54c4e9c13651933899.png

2. Код для генерации mp3 из текста:
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0',
    'Content-Type': 'text/plain;charset=UTF-8',
}


def get_token() -> str:
    url = 'https://texttospeech.ru/api/v1/login'
    data = {"email": "sample@email.com", "pass": "password", "captcha": ""}
    with requests.Session() as session:
        response = session.post(url, headers=headers, json=data)
        token = response.json().get('data').get('token')
        return token


headers['token'] = get_token()


def synthesize(text: str) -> None:
    url = 'https://texttospeech.ru/api/v1/synthesize'
    data = {"rate": "0", "pitch": "0", "volume": "0", "hertz": "0", "shift": "0", "echo": "0",
            "text": f'{text}',
            "code": "ru-RU009",
            "format": "mp3"}
    with requests.Session() as session:
        response = session.post(url, headers=headers, json=data)
        if response.status_code == 200:
            print(response.json().get('message'))
            filelink = response.json().get('data').get('filelink')
            with open(f'{text[0:10]}.mp3', 'wb') as file:
                response = session.get(f'https://texttospeech.ru/{filelink}', headers=headers)
                file.write(response.content)
        else:
            print(response.text)


synthesize('Привет мир')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Steel_Balls
@Steel_Balls
0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
1. подозреваю, что в .login надо отправлять POST-запрос с data, а не пустой GET
2. поле captcha не должно быть пустым. В этом может быть проблема
Ответ написан
Ваш ответ на вопрос

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

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