@ARCHY1990

Парсинг сайта ГИББД.РФ. Проверка получения штрафов?

Хочу написать бот телеграмм который будет проверять пришел мне штраф или нет, в случае если получаю штраф, что бы оповещал о нем. Для этих целей решил воспользоваться selenium, но при заполнении курсор устанавливается в конце строки и заполнения не происходит 60f919c8d9bb5927281491.png

import time
from selenium import webdriver

driver = webdriver.Chrome('chromedriver.exe')

driver.get('https://гибдд.рф/check/fines#')
time.sleep(5)

driver.find_element_by_xpath('//*[@id="checkFinesRegnum"]').send_keys('В098РЕ')
driver.find_element_by_xpath('//*[@id="checkFinesRegreg"]').send_keys('126')
time.sleep(1)
driver.find_element_by_xpath('//*[@id="checkFinesStsnum"]').send_keys('56АВ999999')
time.sleep(5)

driver.find_element_by_xpath('//*[@id="checkFines"]/p[4]/a').click()
time.sleep(5)
driver.quit()


Возможно кто нибудь знает как реализовать ввод данных без selenium? Буду очень благодарен за помощь.
  • Вопрос задан
  • 541 просмотр
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Лучше поискать какой нибудь API, пусть даже на платной основе, который предоставляет возможность получения штрафов. Вроде яндекс давненько запускала сервис оплаты штрафов, может у них есть что нибудь, либо через госуслуги глянуть, если есть возможость.

Лично у меня код работает, но на сайте стоит капча, поэтому не думаю что получится много парсить. Как вариант - можно отправлять просто запросы через requests, но предварительно нужно решить капчу через какой нибудь сервис по решению капчи, и вставить ключ решения в captcha

import requests

regnum = 'В098РЕ'
regreg = '126'
stsnum = '56АВ999999'
captcha = ''

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

data = 'regnum={}&regreg={}&stsnum={}&reCaptchaToken={}'.format(regnum, regreg, stsnum, captcha).encode('utf-8')

r = requests.post('https://xn--b1afk4ade.xn--90adear.xn--p1ai/proxy/check/fines', data=data, headers=headers)

print(r.text)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Zolg
Ну как, как - эмулируете мышку/клавиатуру, OCR'ите экран, или можно нейросетью распознавать.
Есть еще, конечно вариант вызывать https://сервис.гибдд.рф/proxy/check/fines напрямую, но это же для слабаков, да ?
Ответ написан
@galaxy
Гуглокапчу чем собрался парсить?

Хочу написать бот телеграмм который будет проверять пришел мне штраф или нет, в случае если получаю штраф, что бы оповещал о нем

На госуслугах оповещения прекрасно приходят и через приложение почты России. Зачем еще бот какой-то? Базу номеров с СТС собирать?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы