Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

[table]ЗадачаСобрать данные о вылетах и их задержках с сайта flightradar. 

Ниже приведён пример ссылки, с которыми придётся работать. 

https://www.flightradar24.com/data/airports/dme/departures 

Все данные нужно сохранить в таблицах. Для каждой даты создаётся отдельная папка, которая 

содержит информацию о полётах конкретного аэропорта, в названии файла используется код 

IATA данного аэропорта, например, для Домодедово - DME. Таким образом дерево файлов 

выглядит следующим образом, где названием файла выступает код аэропорта: 

... 

08.02.2018 ( folder ) 

-AAA.file 

-AAB.file 

-AAC.file 

... 

В файле содержится информацию о всех полётах, одна строка файла соответствует одной записи, например, для прикреплённого файла 

пример_окна.png первая строка раскладывается в файле следующим образом: 

Время вылета: 5:40 AM 

Фактическое время вылета: 5:42 AM 

Номер рейса - B2954 

Аэропорт прибытия - Minsk (MSQ) 

Оператор - Belavia 

Тип судна - B735 

Идентификатор судна - EW-252PA 

Каждый день парсер будет собирать данные за прошлый день со всех аэропортов. Для того 

чтобы получить данные о полётах очередного аэропорта достаточно заменить в адресной строке 

код аэропорта на код текущего аэропорта. 

Список всех кодов аэропортов можно получить по ссылке ниже. Соответственно, их тоже нужно будет спарсить: 

http://www.galaxylogistics.ru/analitika/kodyi-aeroportov-mira-po-iata-iata.html 

Так как мы парсим довольно большой объём данных, аэропортов в мире более 11 000 штук, то в случае прерывания парсинга, 

мы должны начинать парсить данные за определённый день не с начала ( аэропорт AAA), а с последнего обработанного( спарсенного ) аэропорта. 

Мы должны видеть текущий прогресс парсинга при запуске программы - например: 

Aeroport AAA is parsing ( remaining 11234 airports to parse ). 

Если файл не содержит записей, то сохранять на диск его не нужно, например за определённый день не было полётов с аэропорта AAA, тогда 

файл AAA за этот день присутствовать в папке не должен. 

Так как скорее всего возможны блокировки со стороны сайта из - за частого обращения к ним, то нужно предусмотреть 

механизм умного парсинга на случай блокировки. Нужно рассмотреть различные варианты блокировки(flightradar-ом) в 

частности по IP, по HTTP - заголовкам и предусмотреть программное решение для таких случаев. В частности в файле настроек 

парсера нужно иметь возможность настроить время задержки между двумя обращениями - минимальное и максимальное количество секунд, 

на деле же время задержки между двумя обращениями - случайное число между минимальным и максимальным значением из файла 

настроек. Возможно использование платных прокси - серверов для решения задачи или сеть tor. 

Программа не должна завершаться аварийно. Обязательные требованияРаботающая и компилирующая программа с исходниками, содержащая файл настроек. Программа не должна аварийно завершаться в случае блокировки сайтом, откуда парсим данные.

[/table]

6 лет назад
guest_15185123256998
6 лет в сервисе
Был
6 лет назад