Как войти на сайт, с подтверждением номера на питоне?

Ребят, нужна помощь. Уже весь интернет облазит и нечего не нашел. Ситуация такова: нужно авторизоваться на сайте через питон. Проблема в том что там идет подтверждение номера. Проблем с кодом из сообщения нет. Я его с лёгкостью получаю. Проблема в том что когда я отправляю запрос на сервер по ссылке. Со всеми headers и data он возвращает , а сообщение не приходит. Прошу помочь кто, что знает. Пользовался библиотекой requests.

import requests

headers = {
    'Host': 'widget.city-mobil.ru',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0',
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding': 'gzip, deflate, br',
    'Content-Type': 'application/json',
    'Content-Length':'205',
    'Origin': 'https://city-mobil.ru',
    'Connection': 'keep-alive',
    'Referer': 'https://city-mobil.ru/',
    'TE': 'Trailers',
}

data = {
    "method":"addnewclient",
    "ver":"4.59.0",
    "phone_os":"widget",
    "os_version":"web mobile-web",
    "locale":"ru",
    "phone":"79126818299",
    "devid":"widget-city-mobilru-79126818299",
    "brand":"citymobil",
    "model":"widget"
}

r = requests.post("https://widget.city-mobil.ru/c-api", data=data, headers=headers)

file = open("result.txt", "w")
file.write(str(r.content))
file.close() 

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

Автор решения: Linkeln

Как именно ты отправляешь данные на сам сайт с подтверждением номера? попробуй использовать плагин selenium там все проще и удобнее. Возьми данные из переменной ,где содержится код,установи библиотеку selenium(pip install selenium) cкачай geckodriver для своего браузера(желательно firefox) Далее напиши в коде:

from selenium import webdriver
from time import sleep
browser = webdriver.Firefox()

впиши переменную парсера ,получающего код от телефона,например parser = info далее напиши в коде:

browser.implicitly_wait(5)
browser.get("твой сайт")

затем тебе нужно найти xpath, зайди в браузер -- нажми правой кнопкой мыши когда зайдешь на нужный тебе сайт -- исcледовать элемент затем найди значок мыши в окне, нажми на элемент, в который вписывается значение кода, справа откроется его код, там выбери copy - byxpath затем введи

browser.find_element_by_xpath('данные полученные из xpath').send_keys(parser)
проделай все тоже самое с кнопкой отправки:
browser.find_element_by_xpath('данные полученные из xpath').click()

(Подробнее как пользоваться selenium, можно найти в видео на youtube)

→ Ссылка