Скрипты-парсеры для сайтов 10 аэропортов №9
10 000 руб. за проект
•
электронные деньги
Необходимо разработать скрипты для сбора данных о вылетах и прибытиях самолетов в 10 аэропортах:
Код Аэропорт Город URL
DRS Dresden Airport Dresden http://www.dresden-airport.de/passengers-and-visit...
CWL Cardiff-wales Arpt Cardiff https://www.cardiff-airport.com/live-flight-inform...
DBV Dubrovnik Airport Dubrovnik http://www.airport-dubrovnik.hr/index.php/en/
DUB Dublin International Airport Dublin https://www.dublinairport.com/flight-information/l...
DUS Duesseldorf International Duesseldorf https://www.dus.com/en/flights/arrival?etcc_cmp=Fl...
EDI Turnhouse Edinburgh http://www.edinburghairport.com/flights/live-fligh...
EGO Belgorod Airport Belgorod http://belgorodavia.ru/en/#departure_en-tab
FCO Leonardo da Vinci International (Fiumicino) Rome http://www.adr.it/web/aeroporti-di-roma-en-/pax-fc...
FLR Peretola Florence http://www.aeroporto.firenze.it/en/the-passengers/...
FRA Frankfurt International Airport Frankfurt https://www.frankfurt-airport.com/en/flights---mor...
Требования:
"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
DRS Dresden Airport Dresden http://www.dresden-airport.de/passengers-and-visit...
CWL Cardiff-wales Arpt Cardiff https://www.cardiff-airport.com/live-flight-inform...
DBV Dubrovnik Airport Dubrovnik http://www.airport-dubrovnik.hr/index.php/en/
DUB Dublin International Airport Dublin https://www.dublinairport.com/flight-information/l...
DUS Duesseldorf International Duesseldorf https://www.dus.com/en/flights/arrival?etcc_cmp=Fl...
EDI Turnhouse Edinburgh http://www.edinburghairport.com/flights/live-fligh...
EGO Belgorod Airport Belgorod http://belgorodavia.ru/en/#departure_en-tab
FCO Leonardo da Vinci International (Fiumicino) Rome http://www.adr.it/web/aeroporti-di-roma-en-/pax-fc...
FLR Peretola Florence http://www.aeroporto.firenze.it/en/the-passengers/...
FRA Frankfurt International Airport Frankfurt https://www.frankfurt-airport.com/en/flights---mor...
Требования:
- Скрипты могут быть написаны на любом распространенном языке.
- Каждый скрипт должен быть разработан таким образом чтобы его можно было вызывать из линуксовой консоли.
- Вам будет нужно сообщить нам по и версии, необходимые для работы скрипта (например, 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 минуты.
- Файлы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.