Вероятно вы сталкивались с ситуацией, когда необходимо записаться на прием, а свободных талонов нет. Статья о том, как удалось автоматизировать процесс ожидания на примере оформления загранпаспорта.
После одобрения электронного заявления на загранпаспорт, необходимо записаться на личное посещение, чтобы принести оригиналы документов и сделать фото. Заходя на госуслуги несколько дней в разное время, свободных талонов так и не обнаружил. Не хотелось продолжать такую лотерею.
Решение довольно простое. Когда пользователь выбирает адрес на карте, отправляется запрос, который возвращает доступное время посещения. Он виден в консоле разработчика. Оттуда узнаем о 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 часов появилось свободное место для записи. Думаю, что можно пойти дальше и через последующие запросы сделать автозапись.
ReDev1L
Вы изобретаете то, что должно быть в этих сервисах по умолчанию — нормальная запись и ожидание в очереди.
Сначала эти… ввели эту систему в гибдд — результат — чтобы поставиться на учёт, ты стоишь с 7 утра в очереди за талонами у здания МРЭО.
Теперь тоже самое в поликлиниках.
В обоих случаях — онлайн не записаться, времени нет. На регистратуре говорят "талоны будут завтра с 7:30".
Куда только не писал жалобы, одни отписки. Я считаю такие эксперименты с поликлиниками — вообще на грани с уголовной ответственностью, сколько людей может пострадать если вовремя на приём не попадут.
Кстати ваше время — это кто-то выписался, "отказной талон".
Stronix
iShrimp
Очереди за талонами возникают не потому, что кто-то решил поэкспериментировать. Это следствие нехватки сотрудников в учреждении — когда количество заявок превышает пропускную способность системы, неизбежно возникают задержки и отказы в обслуживании. Поэтому нужно жаловаться не на очереди, а на дефицит специалистов, плохие условия труда (иначе бы люди не уходили) и т.д.
ReDev1L
Это тоже есть, я с этим не спорю.
Я про ИТ сторону вопроса — почему нельзя встать в очередь ожидания свободного времени, чтобы подтвердить запись, скажем в течении 6 часов?
olskalim
Потому что тогда у вас будет очередь из ожидающих записи. Делу-то это никак не поможет, к сожалению.
ReDev1L
Поможет, мне не надо будет в 7 утра долбиться на госуслуги или в поликлинику
MrAloof
Тут другая сторона — как доказать нехватку специалистов без возможности регистрировать всех желающих? Ранее — видно очередь, количество принятых превышает норматив. Сейчас просто 100% нагрузка, всё ок.
citius
Проблема скорее в жуткой бюрократизированности всех без исключения процедур, на исполнение которых никаких людей не хватит в перспективе.
Я недавно записывался на подачу на загранпаспорта для детей через госуслуги. Так мне морда госуслуг показывает всех детей, показывает все нужные документы (давно туда загруженные конечно), и тут же заставляет все по еще одному разу вбивать руками, включая опять же все свидетельства, прописки, и так далее.
А сегодня я туда прихожу опять же с детьми даже немного загодя назначенного времени, и ухожу потом не солоно хлебавши, потому что у сотрудницы ребенок в садике, и в 18:00 окошко закрывается. А те кого они навызывали (за две недели загодя!) на все это — пусть приходят в другой день в живую очередь.
Это просто неизлечимая какая-то чума.
zazar
Жалуйтесь!
По любому поводу.
Для чиновника или бюджетника нет ничего хуже жалобы, то есть, бумажки, с помощью которой его другие чиновники могут прижать по какому-нибудь подвернувшемуся поводу. Это ж тот ещё серпентарий у
кормушкигосударственного распределителя счастливых бумажек. Не факт, что вот прямо сейчас прижмут и всё исправят, по вашей проблеме, но массе других людей одна ваша жалоба в будущем жизнь облегчит.iShrimp
Я о том, что жаловаться надо правильно и целенаправленно.
Человек выше привёл пример с талонами в поликлинике. Вы требуете, чтобы не было очереди за талонами? Её ликвидируют, но обращающихся меньше не станет — очередь возникнет на телефонной линии, на веб-сайте или у дверей кабинета. Вы жалуетесь, что невозможно попасть на приём к врачу? Тогда ему ещё больше сократят время приёма: зашёл – сказал пару слов – свободен. А что если из-за дефицита времени вам назначили неподходящее лечение и вы потребуете привлечь врача к ответственности? Будьте уверены, его привлекут — вместо того чтобы отправить сотрудника на повышение квалификации и организовать контроль качества.
Если проблема вызвана тем, что у вас один специалист на всю больницу, а их должно быть больше (по нормативам — 1 должность терапевта на 1700 человек, 0,65 должности хирурга на 10000 человек и т.д.), то начинать нужно с этого. Нужно, чтобы вашу жалобу чиновники поняли правильно, и не могли истолковать её как просьбу сделать хуже.
MzCartman
Я решил для своей организации проблему нехватки талонов довольно просто. При регистрации всегда можно выбрать 10 ближайших дней, где есть свободные места. Работает уже 8 лет.
iShrimp
Вспомним теорию массового обслуживания: при отсутствии отказов, когда соотношение интенсивности потока заявок к интенсивности потока обслуживания стремится к 1 (? = ?/? > 1), среднее время ожидания ?^2/(?*(1-?)) стремится к бесконечности...
MrAloof
У нас в Перми интереснее — таллоны будут завтра, с 7:30 на 2 недели вперёд.
Даже если успел записаться — когда подойдет очередь либо уже всё прошло, либо уже по скорой в стационар уехал...
Gnuava
Москва. Картина один-в-один.
eumorozov
Наверное от города зависит. В СПб, Москве и подмосковье ни разу не сталкивался с отсутствием времени как для получения загранпаспорта, так и для постановки на учет.
Более того, недавно ставил на учет мотоцикл. Вся процедура от первого окна до получения номера заняла час или даже чуть меньше. Времени для записи на Госуслугах был вагон — любой день, любое время, хоть утром, хоть вечером. Это в областное ГИБДД, которое обслуживает гигантский район с огромным количеством населения, единственное в радиусе 50-60 км (предположительно, когда по карте смотрел, где ставить на регистрацию, ничего ближе не нашел).
ReDev1L
Москва, МРЭО рядом с метро беговая, 2 раза приезжал за талонами к 7:30 для постановки на учёт мотоцикла. Процедура заняла 4 часа чистыми (последняя очередь на талон, бумажки, осмотр, оплата, бумажки) на час или полтора ездил домой позавтракать. Итого 6 часов жизни отдал бюрократии.