Задать вопрос
  • Python Requests - Как авторизоваться на сайте?

    @anoninmer Автор вопроса
    Много чего вынужден был прочитать, но ничего не работало как нужно.
    В итоге вручную пришлось понять что, как и зачем передает и ждет получить cp.mchost.ru.
    На это ушло полдня, но результатом остался доволен. Пользовался инструментарием Google Chrome.

    Тут я думаю проблем нет, он не любит запросы не от браузера, юзаю любой первый попавшийся в интернете хедер.
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                             '(KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'}


    Дальше открываем сессию, делаем обычный GET запрос по ссылке для логина.
    Это нужно для того, чтобы сайт вернул MCHOSTID, который возвращается в виде cookie и что примечательно в строке браузера, но он не обязательный (проверил).
    session = requests.Session()
    session.get(url, headers=headers)
    session.headers.update(headers) # обновим хедеры в сессии


    Дальше хитрое. Как оказалось, логин и пароль сайт принимает в виде закодированной строки через BASE64, в которой через двоеточие перечислен логин и пароль.
    Auth = base64.b64encode('LOGIN:PASSWORD'.encode('utf-8')).decode('utf-8')


    Далее берем MCHOSTID, а также обновляем строку с авторизацией
    cookie = session.cookies.get('MCHOSTID', domain='.mchost.ru')
    session.headers.update({'Authorization': 'Basic ' + Auth})


    Ну и наконец запрос POST, в который мы передаем MCHOSTID в виде строки (именно так ее передает Chrome).
    post_request = session.post(url, {'Cookie': 'MCHOSTID=' + cookie})
    Ответ написан
    Комментировать
  • Можно ли перенести имя пользователя twitch?

    @anoninmer Автор вопроса
    В недрах пользовательского соглашения есть небольшое уточнение по поводу смены ника на платформе twitch. В момент когда произошла смена ника, ваш старый ник блокируется на 6 месяцев без возможности что-либо с ним сделать на этот период. Собственно по прошествии этого времени он перестает считаться сервисом как уже занятый и дает поставить его на любом другом аккаунте, проверил на собственном опыте.
    Ответ написан
    Комментировать
  • Как мониторить измененные и удаленные сообщения в Telegramm в чужих каналах?

    @anoninmer
    Это делается довольно не прозаично, но может быть не очень удобно. ты ставишь себе клиент какой-нибудь библиотеки вроде telethon (python), там можно мониторить каналы, но готовых решений я думаю под твою задачу нет. В любом случае это бот, который использует сессию телеграма, а его нужно где-то хостить.
    Ответ написан