国内机票历史价格数据库

简介

该数据库包含从2017年1月1日至今,国内2千多条直飞航线的出发前90天内的历史价格信息,具有包含价格历史长、连续性高、密度高、价格数据准确等特点。数据来源于互联网公开可查询数据,可用于科研、价格预测、出行优化等各种领域。

相关应用文章:

联系方式:微信号bcdata

数据详情

数据量

注:以下统计数据从2017年1月1日至2019年10月1日,共计1003天进行计算。

低频数据

低频数据收集每日下午2点附近的机票价格,数据库中总共包含1025159650(10亿)条数据。平均每天1025159(一百万)条数据。

高频数据

高频数据采取连续收集,每日采集从10次到20次不等,数据量大约为低频数据的10到20倍不等,约100亿到200亿条数据。平均每天一千万左右。高频数据可以看到每日不同时刻价格的变化,可以更加深入的分析。

字段

数据包含以下字段:

字段 解释
departdate 起飞日期
departtime 起飞时间
arrivetime 到达时间
crawldate 采集日期。2019年1月13日前包含起飞前45天内的价格信息,之后包含起飞前90天的价格信息
flightno 航班号
sharedflightno 共享航班号
departcity 出发机场三字码
departtower 出发航站楼
arrivecity 到达机场三字码
arrivetower 到达航站楼
discount 折扣价格
price 经济舱最低价格信息

样例数据

  • 2017年1月1日起飞的CA4305航班数据,通过crawldate可以看到距离起飞前若干天的机票变化情况(未排序)。例如第一条2016年12月29日,就是起飞前3天的价格数据,不含税为1020元,折扣为7.1折;同理第二条为起飞前5天的价格数据,为540元,3.8折。
index,departdate,departtime,arrivetime,crawldate,flightno,sharedflightno,departcity,departtower,arrivecity,arrivetower,discount,price
0,2017-01-01,07:30:00,09:55:00,2016-12-29,CA4305,,CTU,T2,CAN,,71,1020
1,2017-01-01,07:30:00,09:55:00,2016-12-27,CA4305,,CTU,T2,CAN,,38,540
2,2017-01-01,07:30:00,09:55:00,2016-12-31,CA4305,,CTU,T2,CAN,,68,970
3,2017-01-01,07:30:00,09:55:00,2016-12-26,CA4305,,CTU,T2,CAN,,38,540
4,2017-01-01,07:30:00,09:55:00,2016-12-30,CA4305,,CTU,T2,CAN,,68,970
5,2017-01-01,07:30:00,09:55:00,2016-12-25,CA4305,,CTU,T2,CAN,,38,540
6,2017-01-01,07:30:00,09:55:00,2016-12-24,CA4305,,CTU,T2,CAN,,38,540
7,2017-01-01,07:30:00,09:55:00,2016-12-23,CA4305,,CTU,T2,CAN,,38,540
8,2017-01-01,07:30:00,09:55:00,2016-12-22,CA4305,,CTU,T2,CAN,,38,540
9,2017-01-01,07:30:00,09:55:00,2016-12-28,CA4305,,CTU,T2,CAN,,38,540
10,2017-01-01,07:30:00,09:55:00,2016-12-21,CA4305,,CTU,T2,CAN,,38,540
11,2017-01-01,07:30:00,09:55:00,2016-12-20,CA4305,,CTU,T2,CAN,,38,540
12,2017-01-01,07:30:00,09:55:00,2016-12-17,CA4305,,CTU,T2,CAN,,38,540
13,2017-01-01,07:30:00,09:55:00,2016-12-18,CA4305,,CTU,T2,CAN,,38,540
14,2017-01-01,07:30:00,09:55:00,2016-12-16,CA4305,,CTU,T2,CAN,,38,540
15,2017-01-01,07:30:00,09:55:00,2016-12-19,CA4305,,CTU,T2,CAN,,38,540
16,2017-01-01,07:30:00,09:55:00,2016-12-13,CA4305,,CTU,T2,CAN,,38,540
17,2017-01-01,07:30:00,09:55:00,2016-12-12,CA4305,,CTU,T2,CAN,,38,540
18,2017-01-01,07:30:00,09:55:00,2016-12-11,CA4305,,CTU,T2,CAN,,38,540
19,2017-01-01,07:30:00,09:55:00,2016-12-15,CA4305,,CTU,T2,CAN,,45,640
20,2017-01-01,07:30:00,09:55:00,2016-12-14,CA4305,,CTU,T2,CAN,,38,540
21,2017-01-01,07:30:00,09:55:00,2016-12-10,CA4305,,CTU,T2,CAN,,38,540
22,2017-01-01,07:30:00,09:55:00,2016-12-09,CA4305,,CTU,T2,CAN,,38,540
23,2017-01-01,07:30:00,09:55:00,2016-12-07,CA4305,,CTU,T2,CAN,,30,430
24,2017-01-01,07:30:00,09:55:00,2016-12-08,CA4305,,CTU,T2,CAN,,38,540
25,2017-01-01,07:30:00,09:55:00,2016-12-06,CA4305,,CTU,T2,CAN,,30,430
26,2017-01-01,07:30:00,09:55:00,2016-12-04,CA4305,,CTU,T2,CAN,,38,550
27,2017-01-01,07:30:00,09:55:00,2016-12-05,CA4305,,CTU,T2,CAN,,38,540
28,2017-01-01,07:30:00,09:55:00,2016-12-03,CA4305,,CTU,T2,CAN,,38,548
29,2017-01-01,07:30:00,09:55:00,2016-12-02,CA4305,,CTU,T2,CAN,,38,540
30,2017-01-01,07:30:00,09:55:00,2016-12-01,CA4305,,CTU,T2,CAN,,38,540
31,2017-01-01,07:30:00,09:55:00,2016-11-30,CA4305,,CTU,T2,CAN,,38,540
32,2017-01-01,07:30:00,09:55:00,2016-11-29,CA4305,,CTU,T2,CAN,,38,540
33,2017-01-01,07:30:00,09:55:00,2016-11-27,CA4305,,CTU,T2,CAN,,38,540
34,2017-01-01,07:30:00,09:55:00,2016-11-26,CA4305,,CTU,T2,CAN,,38,540
35,2017-01-01,07:30:00,09:55:00,2016-11-25,CA4305,,CTU,T2,CAN,,38,540
36,2017-01-01,07:30:00,09:55:00,2016-11-28,CA4305,,CTU,T2,CAN,,38,540
37,2017-01-01,07:30:00,09:55:00,2016-11-23,CA4305,,CTU,T2,CAN,,40,570
38,2017-01-01,07:30:00,09:55:00,2016-11-22,CA4305,,CTU,T2,CAN,,40,570
39,2017-01-01,07:30:00,09:55:00,2016-11-24,CA4305,,CTU,T2,CAN,,38,540

玩遥控车(一)——小时的记忆

四驱小子这个动画片,我想大多数80年代出生的人都有看过,也或多或少的买过那种装电池、一开开关就跑、只能通过转向轮转向的四驱车。我还记得小时候玩这种四驱车的时候,买过很多的干电池,学会了如何给干电池充电(你没看错,确实是可以的),还去外面找卖烟的叔叔阿姨给我烟盒的包装,用来粘贴轨道。当然这些烟盒实在是太软了,精度也差,稍微跑快一点就卡死要不就撞坏。小时候家里没多少钱,有钱买几个合金的车模都要争取很久去了。

四驱车

后来过生日舅妈花了300多块钱给我买了一个遥控车,可以前进和后退但不能转向。如果需要转向的话,需要后退,然后带动轮子就能转向了。想想90年代,300多块钱的遥控车还真是贵啊。印象中好像还有大脚车,遥控的可以发射子弹的BB坦克。以前在成都游乐园里面,有那种开船的。当时交通很不发达,从西边到那里去玩一次单边坐车要接近两个小时,但玩个10多分钟这样的遥控船也是相当相当的开心。不记得什么时候,爸爸给我用木头做过一个船,就是把比较大的木头做成船型,中间开一个槽然后装上一个小电机。电机后面再装一个用一个细铁棍和一片易拉罐剪成的螺旋桨,接上四个干电池和很长的线。至于前进和后退,不知道是怎么控制的了,我猜可能是三个触点,前进的时候和倒退的时候正负极相反即可。这艘船在爸爸单位上的假山下面的池子里面开过,在河里面开过,现在想起还回味无穷。

后来五年级以后,有了电脑作伴,玩这些玩具就少多了,好像也就没有怎么买过遥控的玩具了。

产品运营从开始到失败

经过无数次的纠结后,我还是决定关了吧,一直亏损下去也是个无底洞。

17年10月左右开始《爱飞狗》的开发设计,到今年10月1日,差不多两年整的时间,一款有新意的产品,最终还是落了个关闭的下场。究其原因,我不会运营,没有精力去运营;没有雄心壮胆和经济实力进行产品的推广;尤其是产品的商业模式也是个很难突破的点,使得自己都无法说服自己进行投资,更别说找人投资。技术上倒是学到了很多,尤其在爬虫方面积累了非常多的经验,写出了《爬虫实战:从数据到产品》一书,也算是对这个产品的开发模式的一个总结。在这里,最后写一些琐碎的琐碎的文字,也算是对这段历史的总结。

数据

从16年6月开始到现在,我收集了三年多的国内直飞航线的机票数据,覆盖了80%以上的线路。直到现在也在源源不断的采集数据,每天几百万条记录。虽然产品不做了,但背后的数据还是会以继续收集。过去的数据就不会再回来,数据加上了时间的维度,积累的越久便越有价值。这些数据的的存储、处理我也是想了很多方法,以最低成本的方式进行处理,使得能够持续不断的进行收集。

在运营中我发现,越来越多的用户想要查询国际的航班,然而抓取国际航线非常消耗资源,投入非常大所以一直没有做。我将有限的资源用到刀刃上,解决国内航空的问题就可以了。

推广

到目前为止,爱飞狗总共积累了6.4万用户,日活在100左右,高峰时期可以到200左右。新增用户在50到100左右,主要来源还是靠搜索等自然增长。18年过年前爱范儿和知晓程序写了两篇文章帮我获取了大量的用户,而后就逐步放缓。

这样的日活确实有点低,我尝试过在今日头条进行推广、知乎上进行推广,也花了一些钱,但转换率相对较低,也没有太多时间去写软文。这样导致用户积累的速度也就比较慢。另一个硬伤是个低频的应用,一般而言每年只有在大家来临前才有几次使用,一个用户每年使用的时候也是在旅行前,平均下来也就那么一两次,想让一个新用户完全记住这个产品,还是比较困难的。

关于用户的群体,我通过背后采集到的数据和大家的问题了解到,基本上也符合我的假设——都是对价格敏感的群体。最好玩的事,有多个异地恋的学生朋友找过我问过一些问题,从他们得知爱飞狗提供的数据还是非常有用,确实能够节约一些钱。

技术

18年过年前一个多月那段时间,爱范儿推送了两篇产品的文章,使得产品突然面对洪水般的新用户,访问量一度达到2万每分钟。然而小程序还是经历住了考验,虽然慢一点,但还是进行了持续的响应。整个这个项目的最主要的是需要低成本的运营,每月的服务器开销要控制在500元以下,所以服务器等资源不是很强大。

这是当时在DigitalOcean上面一个20美元每月的2核4G的一个服务器上取得的成果,主要的功劳其实还是来自于各级缓存的应用。如果有更多的投入,支持更高数量的并发是没有问题的。然而毕竟这种突发情况也不是常态,所以并没有进行自动扩容等复杂的操作,架构简单即是美。

在架构上,数据采集在云端24小时运行,然后每日同步到本地,利用已有的台式机在夜间进行数据处理,然后将处理完的结果返回给云端。本地使用廉价的硬盘进行存储,部分数据同步到云盘进行备份。这样实现了固定资产的再次利用,降低了海量数据放到云端的成本。这些点都在我的书中有介绍。

支付

维持产品的持续增长和运营,还是靠钱。我没有注册公司以避免注册公司后的种种的坑,所以只能以个人账号进行支付。最初,PayJS刚好帮我实现了这个功能,月收入基本上能够抵消服务器的开销。我认为这就够了。但仅持续了一两个月,苹果将ios的小程序支付功能给禁用了,使得所有的苹果用户无法支付,收入减到一半以下,直到现在这个问题还没有有效的方案。

后来微信开通了广告的业务,遂在页面中加入了各种广告和利用广告来赚积分的方案来赚取少量的收入。但实在是太少了,而且极大的影响了用户体验。

未来

都决定关了,还谈什么未来?

我曾考虑过做成网页版,通过扫描支付等手段得到一定的收入,但在目前移动的趋势下,我认为也是死路一条;我最近还在看有没有支付的方案,还是没有找到;有哥们儿帮我提供了一个非常便宜的服务器,无奈在国外网络性能不好,在国内访问起来问题不断……现在程序或者数据出现了一些问题,历史数据也刷新不出来了,算了吧,没有时间精力去搞了。公众号上面,看到了有朋友依然需要这个App,但确实是没有精力了,关了吧……

或许,某一天,突然又有想法了,或者你有想法支持一把?请与我联系,或许这个App会因为你而重生。

再见!

你要的免费Proxy资源全在这里了

地址:https://github.com/derekhe/ProxyPool

介绍

《爬虫实战:从数据到产品》一书中,我讲到了一个基于ProxyBroker的代理池。经过我的长时间的实践,这个代理池用起来非常的方便和稳定。

基于ProxyBroker,增加了中国区域的代理资源。并引入了docker-compose,能够快速的方便的开始代理的抓取。

用法

docker-compose up

然后浏览器打开http://localhost:8080/proxy.json 即可得代理列表。每个代理都经过类型的验证,代理资源会随着时间增长。每个代理的有效期为一天时间。大概一天有1万左右的有效代理。

由于很多代理资源在中国无法访问的网站,部署在国内的服务器上会影响资源的获取,所以推荐将服务器部署到国外的服务器。服务器推荐使用DigitalOcean,我的多个服务器都在SFO2区域,非常的稳定。

使用k3s减少k8s成本

爱飞狗后台的数据爬虫以及数据服务器资源都部署在k8s上,使用rancher搭建。在不影响太多性能的情况下尽量选择最低配置的机器。对于内存不足的情况适当的使用交换文件代替(swap)。整个集群大致结构如下:

用途 机器类型 价格
爬虫1 1G 1CPU 5美元
爬虫2 1G 1CPU 5美元
爬虫3 1G 1CPU 5美元
监控 1G 1CPU 5美元
etcd 2G 1CPU 10美元
rancher主机 2G 1CPU 10美元
aiflygo服务器 4G 2CPU 20美元

一个月的开销大概在60美元左右。分析上面的集群可以发现,rancher和etcd两个节点是浪费了钱,每个月有20美元的开销。DigitalOcean提供了k8s的托管集群,可以将这部分开销节省。但托管集群的droplet无法定制化,无法使用交换分区和bbr,造成性能瓶颈。另外托管的droplet的最低要求也是2G的内存,造成不必要的开支。

k8s有一个非常不好的地方就是最低的机器要求比较高,1G内存的worker node已经完全低于推荐配置,如果在上面部署worker node直接的内存占用就要300M左右,剩余的内存空间并不多,必须要使用交换分区。etcd节点之前也用过1G的内存,但经常会由于大量使用交换分区导致性能问题,最后集群崩溃,所以无论如何也需要使用2G的内存才行。

最近rancher公司推出了k3s,其主打就是简易的部署和极地的机器消耗。这点对于节约成本来讲非常的重要。我试了下k3s的server大概只占用200M左右的内存,agent只占用几十兆内存,非常的节约。k3s也可以完全使用kubectl来进行管理,配置文件和k8s保持一致,非常方便。

我将etcd节点和rancher主机删除,替换成了1G 1CPU的机器(5美元),节约了15美元,然后将aiflygo的服务器进行降配置到2G 2CPU (15美元),总共节约20美元。得益于更多的可用内存,目前爬虫的性能比以前更好,整体集群的性能也非常的高。

至于HA,既然都穷到了用k3s来减少开销,对于我这样的小型的集群和不是关键系统来讲都不是需要考虑的了。