Госуслуги и запись на прием. Живая очередь? / Хабр
Вероятно вы сталкивались с ситуацией, когда необходимо записаться на прием, а свободных талонов нет. Статья о том, как удалось автоматизировать процесс ожидания на примере оформления загранпаспорта.
После одобрения электронного заявления на загранпаспорт, необходимо записаться на личное посещение, чтобы принести оригиналы документов и сделать фото. Заходя на госуслуги несколько дней в разное время, свободных талонов так и не обнаружил. Не хотелось продолжать такую лотерею.
Решение довольно простое. Когда пользователь выбирает адрес на карте, отправляется запрос, который возвращает доступное время посещения. Он виден в консоле разработчика. Оттуда узнаем о URL и параметрах.
def send_post(cookies): url = 'https://www.gosuslugi.ru/api/lk/v1/equeue/agg/slots' headers = {'Content-type': 'application/json;charset=UTF-8', 'Accept':'application/json', 'Cookie':cookies} payload = {'eserviceId':'','serviceId':[''],'organizationId':[''],'parentOrderId':'','serviceCode':'','attributes':[]} return post(url, data=dumps(payload), headers=headers)
Возникает проблема. Чтобы получить успешный ответ, к запросу требуется добавить куки. Их можно скопировать из этого же запроса. Но они будут действовать лишь несколько часов. Поэтому при получении ошибки (401) проходим авторизацию и копируем новые куки, сохраняя их в файл. Когда обнаружим свободные места, откроем браузер на этой странице.
Для реализации понадобился Python, Selenium и планировщик заданий Windows. Таким образом, получаем следующий основной код:
from webbrowser import open as open_tab from selenium import webdriver from datetime import datetime from requests import post from json import dumps from os import path def main(): response = send_post(read_cookies()) if response.status_code == 401: write_cookies(get_cookies()) write_log('Ошибка 401. Обновлены куки.') main() return elif response.status_code == 200: length = len(response.json()['slots']) if length > 0: write_log('Есть мест: ' + length) open_tab(TARGET_LINK, new=1) else: write_log('Нет мест') else: write_log('Ошибка {0}'. format(response.status_code))
Чтобы получить куки, с помощью Selenium переходим на страницу входа, находим поля для ввода и вставляем логин с паролем. На практике не удалось авторизоваться без оконного режима. Поэтому раз в несколько часов станет появляться окно браузера на пару секунд. Чтобы получить нужный набор кук, переходим на страницу, где выбирается адрес ведомства TARGET_LINK
.
def get_cookies(): options = webdriver.ChromeOptions() options.add_argument('--no-sandbox') options.add_argument('--minimal') driver = webdriver.Chrome(executable_path=DRIVER_FILE, options=options) driver.get('https://esia.gosuslugi.ru/') driver.implicitly_wait(7) input_login = driver.find_element_by_id('login') input_password = driver.find_element_by_id('password') btn_enter = driver.find_element_by_id('loginByPwdButton') input_login.send_keys(LOGIN) input_password.send_keys(PASSWORD) btn_enter.click() driver.get(TARGET_LINK) cookies = driver. get_cookies() driver.close() return cookies
Для запроса, куки форматируются в имя=значение;
raw_cookies = ''.join(['{}={}; '.format(i['name'], i['value']) for i in cookies])
Осталось настроить планировщик заданий Windows. Прямой запуск скрипта .py
у меня не получился. Поэтому через .bat
одна команда python "script.py"
. Да, при этом открывается окно консоли. Есть внешние программы, позволяющие запустить консоль скрытно.
В результате, на третий день и 240 запусков в районе 17 часов появилось свободное место для записи. Думаю, что можно пойти дальше и через последующие запросы сделать автозапись.
|
Passport News — Время ожидания паспорта США
20 марта 2023 г.
20 марта 2023 г.
Ознакомьтесь с последними рекомендациями для заявителей на получение паспорта США, включая сроки, советы, узнайте, какое агентство обрабатывало заявление, и общие отзывы об услуге.
Подробнее
20 марта 2023 г.
20 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
17 марта 2023 г.
17 марта 2023 г.
Ознакомьтесь с последними рекомендациями для заявителей на получение паспорта США, включая сроки, рекомендации, узнайте, какое агентство рассматривало заявление и общие отзывы об услуге.
Подробнее
17 марта 2023 г.
17 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
16 марта 2023 г.
16 марта 2023 г.
Ознакомьтесь с последними рекомендациями для заявителей на получение паспорта США, включая сроки, советы, узнайте, какое агентство обрабатывало заявление и общие отзывы об услуге.
Подробнее
16 марта 2023 г.
16 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
15 марта 2023 г.
15 марта 2023 г.
Ознакомьтесь с последними рекомендациями для заявителей на получение паспорта США, включая сроки, советы, узнайте, какое агентство рассматривало заявление и общие отзывы об услуге.
Подробнее
15 марта 2023 г.
15 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
14 марта 2023 г.
14 марта 2023 г.
Ознакомьтесь с последними рекомендациями для заявителей на получение паспорта США, включая сроки, советы, узнайте, какое агентство рассматривало заявление и общие отзывы об услуге.
Подробнее
14 марта 2023 г.
14 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
Архив времени ожидания паспорта США
20 марта 2023 г.
20 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
17 марта 2023 г.
17 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
16 марта 2023 г.
16 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
15 марта 2023 г.
15 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
14 марта 2023 г.
14 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
12 марта 2023 г.
12 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT. Мы предоставляем ежедневное обновление с последним средним значением, а комментарии также открыты ниже.
Подробнее
9 марта 2023 г.
9 марта 2023 г.
Мы собираем исходные данные, чтобы предоставить вам среднее время обработки паспорта для всех типов заявлений. Если вы подали заявление на получение паспорта и хотите узнать, сколько времени это займет, вы можете найти все ответы на наших страницах новостей PWT.
Leave a Reply