worldenddominator (juan) wrote,
worldenddominator
juan

Categories:

Как записаться на прием в посольство Венгрии

Недавно возникла необходимость помочь ser_koteiko получить визу в Венгрию. У этой страны нет визового центра. С одной стороны, это плюс: экономим около 1000 рублей. С другой стороны, чтобы подать документы, надо записаться на сайте консульства на определенную дату. Если взглянуть на календарь, то можно увидеть, что ближайшая возможность подать документы - где-то через месяц. Что же делать, если нужно сделать это раньше?

Онлайн-запись в принципе можно отменить, и время от времени люди делают это по разным причинам. Можно сидеть весь день и жать 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 часов.

Оглавление | Телеграм | Instagram
Tags: 2013, programming
Subscribe

  • Швейцария: Интерлакен

    Город Интерлакен, как видно из названия, находится между двумя озерами - Тунским и Бриенцским, правда, из центра города не видно ни того, ни…

  • Швейцария: Тун

    Вечером я заскочил в город Тун, который не совсем по пути в Интерлакен, но всего в 10-15 минутах езды. Были уже сумерки, небо темно-синего цвета.…

  • Швейцария: Бриг

    Из Церматта я вернулся вниз к крупной станции Бриг - побольше, чем Фисп, 12 тысяч населения. ЖД вокзал. Снегом все замело, но он уже…

promo juan october 3, 2014 10:00 5
Buy for 10 tokens
Как и армяно-азербайджанский конфликт, война между Грузией и Осетией является продолжением аналогичной войны, проходившей после первого развала России в 1917 году. Схема хорошо известна и по Югославии: Грузия выходит из состава СССР, а Осетия по аналогии - из состава Грузии. Если Абхазия по…
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments