Скрипты-парсеры для сайтов 10 аэропортов №13
10 000 руб. за проект
•
электронные деньги
Необходимо разработать скрипты для сбора данных о вылетах и прибытиях самолетов в 10 аэропортах:
Код Аэропорт Город URL
KUT Kutaisi Airport Kutaisi http://kutaisiairport.ge/Flights
DPS Ngurah Rai International Airport Denpasar Bali http://ngurahrai.ap1.co.id/en
GDN Rebiechowo Airport Gdansk http://www.airport.gdansk.pl/schedule/arrivals-tab...
HUY Humberside International Airport Humberside http://www.humbersideairport.com/live-flight-infor...
IAD Washington Dulles International Washington http://www.flydulles.com/iad/arrivals-and-departur...
HAN Noibai International Hanoi http://noibaiairport.vn/HOME/Lichbay.aspx
KXK Komsomolsk Na Amure Komsomolsk-on-Amur http://www.airksl.ru/
MCX Makhachkala Airport Makhachkala http://www.mcx.aero/
MJZ Mirny Airport Mirny http://mapalrosa.com/
MLA Malta International Malta https://www.maltairport.com/passenger/flights-land...
Требования:
"airport_id": "HKG",
"departures": [
{
"flightno": "CX828",
"codeshares": [
"TX828",
"ZX828"
],
"check_in_desks": "21 - 23",
"gate": "31",
"scheduled": "2016-10-11 07:27:00",
"estimated": "2016-10-11 07:45:00",
"actual": "2016-10-11 07:46:00",
"raw_status": "Departed at 07:46",
"status": "departed"
}
],
"arrivals": [
{
"flightno": "CX829",
"codeshares": [
"TX829",
"ZX829"
],
"luggage": "11, 12, 14",
"scheduled": "2016-10-11 07:27:00",
"estimated": "2016-10-11 07:25:00",
"actual": "2016-10-11 07:26:00",
"raw_status": "Bag belt open 11, 12, 14",
"status": "landed"
}
]
}
Где
airport_id - ID Аэропорта (согласно кодировки IATA) указан выше в списке аэропортов (трехбуквенный)
departures - массив рейсов вылетов
arrivals - массив рейсов прилетов
flightno - номер рейса
codeshares - массив совмещенных номеров рейсов (если есть)
check_in_desks - стойки регистрации (если есть)
gate - выход на посадку (если есть)
luggage - выдача багажа (если есть)
scheduled - дата/время вылета/приземления по расписанию по местному времени аэропорта в формате YYYY-mm-dd HH:MM:SS
estimated - прогнозируемые дата/время вылета/приземления (если есть) по местному времени аэропорта в формате YYYY-mm-dd HH:MM:SS
actual - фактические дата/время вылета/приземления (если есть) по местному времени аэропорта в формате YYYY-mm-dd HH:MM:SS
raw_status - статус как он отображается на сайте аэропорта
status - один из:
unknown - статус неизвестен
scheduled - рейс идет по расписанию
checkin - идет регистрация
boarding - идет посадка
outgate - посадка закончена
departed - рейс вылетел
expected - ожидается скорая посадка
delayed - рейс задерживается
landed - приземлился
cancelled - рейс отменен
Таблица соответствия статусов в аттаче (Flight statuses mapping). Если вы встретили какой-то другой статус, сообщите мне, я скажу как его интерпретировать и добавлю в таблицу.
В 99% случаев, все необходимые рейсы можно получить сделав небольшое количество запросов. Однако бывают сайты, где все обязательные поля (flightno, scheduled, raw_status, status) можно получить только делая по одному запросу на каждый рейс. В таком случае при запуске скрипта будет передан параметр flightno, и тогда скрипт должен найти похожие рейсы и сделать запросы только по ним.
Таким образом, выполнение скрипта в любом случае не должно занимать более 1 минуты.
Код Аэропорт Город URL
KUT Kutaisi Airport Kutaisi http://kutaisiairport.ge/Flights
DPS Ngurah Rai International Airport Denpasar Bali http://ngurahrai.ap1.co.id/en
GDN Rebiechowo Airport Gdansk http://www.airport.gdansk.pl/schedule/arrivals-tab...
HUY Humberside International Airport Humberside http://www.humbersideairport.com/live-flight-infor...
IAD Washington Dulles International Washington http://www.flydulles.com/iad/arrivals-and-departur...
HAN Noibai International Hanoi http://noibaiairport.vn/HOME/Lichbay.aspx
KXK Komsomolsk Na Amure Komsomolsk-on-Amur http://www.airksl.ru/
MCX Makhachkala Airport Makhachkala http://www.mcx.aero/
MJZ Mirny Airport Mirny http://mapalrosa.com/
MLA Malta International Malta https://www.maltairport.com/passenger/flights-land...
Требования:
- Скрипты могут быть написаны на любом распространенном языке.
- Каждый скрипт должен быть разработан таким образом чтобы его можно было вызывать из линуксовой консоли.
- Вам будет нужно сообщить нам по и версии, необходимые для работы скрипта (например, python 2.7.*, BeautifulSoup 4.4.*). Скрипт будет запускаться в Docker-контейнере, поэтому, если вы знакомы с докером, то достаточно сообщить название и тэг образа из докер репозитория в котором скрипт сможет правильно работать или предоставить Dockerfile для создания такого образа.
- Там, где аэропорты предоставляют данные в форматах json, csv, xml и т. д. предпочтительней использовать их, иначе - делать парсинг html-страниц(ы) с помощью соответствующей библиотеки.
- Результат должен содержать как минимум информацию по рейсам, которые приземлились / должны были приземлиться за последние 4 часа и которые по расписанию должны приземлиться в течение ближайших 24 часов, если эта информация доступна на сайте аэропорта.
- Скрипт должен всегда работать с англоязычной версией сайта аэропорта при ее наличии.
- В результате своей работы скрипт должен вывести в STDOUT только (никаких warning'ов, комментариев, логов и т. п.) JSON-структуру в виде:
"airport_id": "HKG",
"departures": [
{
"flightno": "CX828",
"codeshares": [
"TX828",
"ZX828"
],
"check_in_desks": "21 - 23",
"gate": "31",
"scheduled": "2016-10-11 07:27:00",
"estimated": "2016-10-11 07:45:00",
"actual": "2016-10-11 07:46:00",
"raw_status": "Departed at 07:46",
"status": "departed"
}
],
"arrivals": [
{
"flightno": "CX829",
"codeshares": [
"TX829",
"ZX829"
],
"luggage": "11, 12, 14",
"scheduled": "2016-10-11 07:27:00",
"estimated": "2016-10-11 07:25:00",
"actual": "2016-10-11 07:26:00",
"raw_status": "Bag belt open 11, 12, 14",
"status": "landed"
}
]
}
Где
airport_id - ID Аэропорта (согласно кодировки IATA) указан выше в списке аэропортов (трехбуквенный)
departures - массив рейсов вылетов
arrivals - массив рейсов прилетов
flightno - номер рейса
codeshares - массив совмещенных номеров рейсов (если есть)
check_in_desks - стойки регистрации (если есть)
gate - выход на посадку (если есть)
luggage - выдача багажа (если есть)
scheduled - дата/время вылета/приземления по расписанию по местному времени аэропорта в формате YYYY-mm-dd HH:MM:SS
estimated - прогнозируемые дата/время вылета/приземления (если есть) по местному времени аэропорта в формате YYYY-mm-dd HH:MM:SS
actual - фактические дата/время вылета/приземления (если есть) по местному времени аэропорта в формате YYYY-mm-dd HH:MM:SS
raw_status - статус как он отображается на сайте аэропорта
status - один из:
unknown - статус неизвестен
scheduled - рейс идет по расписанию
checkin - идет регистрация
boarding - идет посадка
outgate - посадка закончена
departed - рейс вылетел
expected - ожидается скорая посадка
delayed - рейс задерживается
landed - приземлился
cancelled - рейс отменен
Таблица соответствия статусов в аттаче (Flight statuses mapping). Если вы встретили какой-то другой статус, сообщите мне, я скажу как его интерпретировать и добавлю в таблицу.
В 99% случаев, все необходимые рейсы можно получить сделав небольшое количество запросов. Однако бывают сайты, где все обязательные поля (flightno, scheduled, raw_status, status) можно получить только делая по одному запросу на каждый рейс. В таком случае при запуске скрипта будет передан параметр flightno, и тогда скрипт должен найти похожие рейсы и сделать запросы только по ним.
Таким образом, выполнение скрипта в любом случае не должно занимать более 1 минуты.
- Файлы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.