![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Недавно возникла необходимость помочь
ser_koteiko получить визу в Венгрию. У этой страны нет визового центра. С одной стороны, это плюс: экономим около 1000 рублей. С другой стороны, чтобы подать документы, надо записаться на сайте консульства на определенную дату. Если взглянуть на календарь, то можно увидеть, что ближайшая возможность подать документы - где-то через месяц. Что же делать, если нужно сделать это раньше?

Онлайн-запись в принципе можно отменить, и время от времени люди делают это по разным причинам. Можно сидеть весь день и жать F5, ожидая, когда что-то отменится. Реально эксперименты с сайтом показали, что отмена происходит не автоматически. В какой-то момент там приходит человек и очищает все отмененные слоты. Происходит это в рабочее время, так что надежнее всего рефрешить страницу часов в 8-9 утра. Но еще лучше - написать простенькую программку, которая все сделает сама!
Решил выложить программу в открытый доступ. У кого руки не кривые, тот разберется, как ее запустить. Нужны Python 2.7 и модуль mechanize, а в переменные сверху надо вписать свои данные. Лучше делать на загранпаспорт, т.к. с русскими буквами программку придется чуть-чуть модифицировать.
Для успешной операции надо днем мониторить почту. Когда происходит запись, на почту приходит письмо, в котором надо кликнуть на ссылку для подтверждения, и сделать это надо в течение 6 часов.
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)

Онлайн-запись в принципе можно отменить, и время от времени люди делают это по разным причинам. Можно сидеть весь день и жать F5, ожидая, когда что-то отменится. Реально эксперименты с сайтом показали, что отмена происходит не автоматически. В какой-то момент там приходит человек и очищает все отмененные слоты. Происходит это в рабочее время, так что надежнее всего рефрешить страницу часов в 8-9 утра. Но еще лучше - написать простенькую программку, которая все сделает сама!
Решил выложить программу в открытый доступ. У кого руки не кривые, тот разберется, как ее запустить. Нужны Python 2.7 и модуль mechanize, а в переменные сверху надо вписать свои данные. Лучше делать на загранпаспорт, т.к. с русскими буквами программку придется чуть-чуть модифицировать.
import time, mechanize # Last name last="Lamperouge" # First name first="Lelouch" phone = "+79011234567" # Passport serie pass1 = "72" # Passport number pass2 = "1234567" email = "lelouch@lelouch.com" url = "https://hungaria.embassytools.com/ru/calendar?m=06.2014" chrome = mechanize.Browser() html = "" while True: try: r = chrome.open(url) html = r.read() except: continue ind = html.find("id=\"activeslot\"") if ind == -1: time.sleep(10) else: slots = [] while True: html = html[ind+1:] id = html[html.find("slotId") + 8:html.find("slotId") + 15] idint = int(id) slots.append(idint) ind = html.find("id=\"activeslot\"") if ind == -1: break slots.sort() for idint in slots: id = str(idint) try: r = chrome.open("https://hungaria.embassytools.com/ru/registrationForm?slot=" + id) chrome.select_form(nr=0) except: continue date = chrome["appointmentDate"] if (int(date[8:10]) < 17) and (int(date[8:10]) > 8): print "using slot " + id + date chrome["lastName"] = last chrome["firstName"] = first chrome["PhoneNumber"] = phone chrome["email"] = email chrome["passportSerie"] = pass1 chrome["passportNumber"] = pass2 r = chrome.submit()
Для успешной операции надо днем мониторить почту. Когда происходит запись, на почту приходит письмо, в котором надо кликнуть на ссылку для подтверждения, и сделать это надо в течение 6 часов.
no subject
Date: 2014-06-12 10:48 am (UTC)no subject
Date: 2014-06-12 10:55 am (UTC)Мм, а зачем касса РЖД? Можно же купить на сайте.А, я забыл, что в Калининград только в кассах продаются. Но для других направлений это не особо актуально.
no subject
Date: 2014-07-03 08:41 am (UTC)