在莱特兄弟制造了第一架可控飞机100年后的今天,坐飞机已然成为了大众化的出行方式。可是我们大多数人对航空领域的相关情况了解得还并不多,例如历史上各国航空器制造公司的兴衰、全球各个机场的繁忙程度,和每家航空公司的准点率,还有每家公司的机龄分布和飞机利用率等等问题。为了揭开这一切,几个月前连续跟踪来自https://www.flightradar24.com的全球航空飞行记录。由于飞行记录实时更新,网页包含大量JavaScript代码,要经过渲染处理才能获得我们需要的全部数据。故而在分布式爬虫时不能用常规的方法获取网页内容,可以结合selenium和phantomjs来批量动态获取内容,再使用BeautifulSoup等来抓取有用信息。目前一共获取了400多万条全球飞行记录,寻思着恰好可以利用这些数据来分析一下上面的问题。
经过对原始数据进行清洗、计算、变换等多重预处理操作后得到如下数据格式,如下所示,代表的即是一条飞行记录的各个信息:
{u'age': 0, u'aircraft': u'Flight history for aircraft - 4R-ALP', u'aircraft_num': 8470, u'aircraft_type': u'Airbus A330-343', u'airline': u'SriLankan Airlines', u'airline_arrival_punctuality_rate': 0.9097986577181209, u'airline_departure_punctuality_rate': 0.5763758389261745, u'airline_num': 21, u'airline_record_num': 3725, u'airport_arrival_punctuality_rate': 0.7331968725881682, u'airport_arrival_record_num': 29801, u'airport_departure_punctuality_rate': 0.1418695324530651, u'airport_departure_record_num': 30521, u'arrival_late(mins)': -51, u'average_age': 7.635973154362416, u'date': u'21 Oct', u'departure_late(mins)': 8, u'f_from': u'Shanghai(PVG)', u'f_to': u'Colombo(CMB)', u'flight_duration': u'6:15', u'flight_name': u'UL867', u'punctuality_rate': 0.8709677419354839, u'real_departure': u'1:18 AM', u'sche_arrival': u'1:15 AM', u'sche_departure': u'1:10 AM', u'status': u'Landed 12:24 AM', u'type': u'flight'}
#直接看大图,以下图表柱形代表对应航空公司的飞机数量,曲线折点代表飞机利用率 show(num_airline_bar)
如上图所示,可见全球5大航空公司分别为American Airlines,Delta Air Lines,United Airlines,Southwest Airlines 和 FedEx。其中美国航空和达美航空都拥有超过800架在飞飞机,而中国南方航空,中国东方航空和中国国际航空也都挤进前十的行列。从图中曲线,同时可以查询每家公司的飞机利用率的高低,这里就不分别讨论了。
机龄排行靠前的航空公司,可以发现国内就有天津航空、厦门航空、海南航空、山东航空、四川航空和上海航空等几家公司的平均机龄都没有超过5年。而Ameriflight,DHL,和FedEx的平均机龄均超过20年,特别是Ameriflight的在飞飞机平均机龄已超过36年。总体来看,拥有较新飞机的更多是一些新兴的小型航空公司,而机龄较老的一般是国际上的货运航空公司。#下图展示的是关于航空公司拥有全部飞机的平均机龄,按机龄从小到大排列: show(age_airline_bar)
#比较关心的准点率呢?先从机场开始,下图分别展示了前八十大飞机场所有降落和起飞的准点率,按延迟不大于30分钟为标准。 show(punctuality_rate_airport_bar)
#比较了机场的情况,接下来看看各大航空公司的情况。下面给出两张图,增加的另一张是按准点率的国际标准绘制的,即安延误不超过15分钟为准点标准。 show(punctuality_rate_airline_bar)
show(punctuality_rate_airline_15mins_bar)
不同航空器制造公司在飞的飞机数量,按机龄分布图如下:
有图可知由于历史原因,近年来还活跃的飞机制造领域只剩下美国的Boeing,欧洲的AirBus,加拿大的Bombardier,巴西的Embraer和法国的ATR这五家公司。 近20年来,Boeing和Airbus发展势头非常好,特别是近年航空市场逐渐被这两家公司实现瓜分,其出产的飞机数量大大领先于其他竞争对手。Airbus 曾一度领先Boeing,不过4年前有下滑趋势进而被Boeing反超。
全球20大机场
#我们还可以根据条件搜索出需要的信息,例如 input_dic ={'f_from':'hongkong', 'f_to':'shanghai', 'airline_arrival_punctuality_rate':0.9, 'punctuality_rate_airline':0.9, } output_list =['airline', 'airline_arrival_punctuality_rate' ] get_results(input_dic,output_list,line) #输出 [[u'airline: Air Hong Kong', 'airline_arrival_punctuality_rate: 96.9%'], [u'airline: Cathay Dragon', 'airline_arrival_punctuality_rate: 92.4%'], [u'airline: Cathay Pacific', 'airline_arrival_punctuality_rate: 95.3%']]