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

  • Бразилия: Манаус. Часть II

    Из Манауса я съездил на стандартную экскурсию по Амазонке и окрестностям. Экскурсия на большой лодке стоит где-то 120 реалов, а за 300 я арендовал…

  • Бразилия: Манаус. Часть I

    Северную часть Бразилии занимает Амазония - регион с экзотическими животными и растениями, где вместо дорог - Амазонка и ее многочисленные притоки.…

  • Бразилия: Натал

    Город Натал (столица штата Риу-Гранди-ду-Норти) по статистике является одним из самых опасных мест в Бразилии и в мире - в 2019 году он был на…

promo juan июнь 17, 11:00 6
Buy for 10 tokens
Этой весной я осуществил большую поездку в Бразилию - самую большую страну Южной Америки и одну из крупнейших в мире. Эта страна несомненно заслуживает подробного изучения, как Россия, Китай, Индия или США, поэтому я доволен тем, что смог основательно по ней поездить, даже несмотря на то, что…
  • 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