Как войти на сайт, с подтверждением номера на питоне?
Ребят, нужна помощь. Уже весь интернет облазит и нечего не нашел. Ситуация такова: нужно авторизоваться на сайте через питон. Проблема в том что там идет подтверждение номера. Проблем с кодом из сообщения нет. Я его с лёгкостью получаю. Проблема в том что когда я отправляю запрос на сервер по ссылке. Со всеми 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 шт):
Как именно ты отправляешь данные на сам сайт с подтверждением номера? попробуй использовать плагин 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)