详述机票搜索的实现原理
相比于传统搜索,垂直搜索有其独到的优势,一方面是及时性,其次是信息组织的规整。
机票搜索的实现原理可以概括为:后台抓取+ 前端展示。
大家现看一个例子: http://jipiao.wendoo.com
。 下面就结合该机票搜索的实现方式详细谈一谈。
后台抓取
后台抓取分: 中央缓存器+crawler
crawler:从机票订票网站抓取数据。和传统crawler相比,它们更智能一些,也可以说更笨一些,因为不同网站的页面结构是不同的,而我们抓取回
来要分清楚哪些是航班信息,哪些是价格信息 等等。 所以这里的crawler是用模板配置的,针对一个订票网站写一个crawler。
而这里crawler要抓取的不是一个普通的页面,而是根据一定查询条件的表单提交,所以要一个个分析订票网的表单提交方式,然后模拟其表单提交进行查
询,从而抓到想要的结果。
中央缓存器:用来缓存抓取的机票数据。中央缓存器又分两种,一种是及时性缓存,存查询的航班的机票价格;另一种是持久性缓存,一般存一个月或一年的机票价格数据,用来统计机票价格趋势,做数据分析用。
鉴于机票价格搜索这种对时间要求非常高的应用,缓存策略至关重要。下面看一个例子回来再详说原理:
http://jipiao.wendoo.com/t?isback=false&from=%E5%8C%97%E4%BA%AC&to=%E5%B9%BF%E5%B7%9E&date=2008-10-11&backdate=
大家看到搜索页顶端显示正在搜索XXX订票网站,貌似是时时的去抓取价格,可做技术的人应该知道,如果时时抓取几十个订票网的成本太大了,一方面是自己的成本,为保证并发访问速度,需要非常多的抓取机器;另一方面是增大了目标网站的负载,多数会把你屏蔽掉的。 我们这里分析了机票价格变化的时间周期,采取了一定的缓存策略来解决这个问题,即保证了用户查到机票价格的准确性又保证了抓取负担最小化。以上面查询为例,假如第一次查询北京到广州该天的机票,这时crawler会老老实实一个一个抓取目标网站结果回来,如果一看缓存中已经有现成的数据了且没有过期,则直接返回结果。这个缓存策略可以做的足够灵活,比如不同航线的价格变化周期是不同的,用户需求量也是不同的(北京到广州的航班数量和价格变化和查询的次数都远远大于北京到成都的,所以根据这点不同可以制定更为合理的缓存策略。
到此为止说的是时时机票的缓存策略,令一部分是持久性缓存,主要做数据分析用的,比如预测航班价格趋势等等,这里不做详述了。
前端展示
待续
分享到:
相关推荐
基于对象的垂直搜索引擎越来越受到人们的关注,结合这一热门技术,详细介绍了机票比价搜索系统的设计与实现。该 系统基于垂直搜索的思想,采用模板方式的网页抽取技术,提供给用户全面的机票信息。
可以自动搜索机票 可以查询各大航空公司的机票
打折机票比价搜索引擎 V5.0.1.0 绿色版 最全面最低价的机票比价搜索! 致力于瞬间找到最便宜,最准确的特价机票,打折机票的信息。 一次机票查询,500多个机票出票网站,2000多个机票服务商寻找最低价格! 100%中国...
去哪儿网机票搜索系统的高并发架构设计.pdf去哪儿网机票搜索系统的高并发架构设计.pdf去哪儿网机票搜索系统的高并发架构设计.pdf去哪儿网机票搜索系统的高并发架构设计.pdf去哪儿网机票搜索系统的高并发架构设计.pdf...
jquery实现如机票地区搜索功能并添加跳转功能 删除地区名可直接进行搜索,点击选择可以根据级别拼音首字母进行搜索
航空机票管理+实现机票预订管理,根据航空订票系统让你订票航空机票管理+实现机票预订管理,根据航空订票系统让你订票航空机票管理+实现机票预订管理,根据航空订票系统让你订票航空机票管理+实现机票预订管理,根据...
用jsp网页实现机票预定系统,用于数据库的课程设计
小程序源码 东航订机票 (代码+截图)小程序源码 东航订机票 (代码+截图)小程序源码 东航订机票 (代码+截图)小程序源码 东航订机票 (代码+截图)小程序源码 东航订机票 (代码+截图)小程序源码 东航订机票 (代码+截图)小...
机票预订系统设计与实现 有关计算机方面的课程设计 详细的设计
机票日历。日期显示价格。最低价格凸显,java日历部署直接运行
这是我做的机票预订管理系统的实现部分,可继续完善
机票管理系统设计与实现(一):https://blog.csdn.net/qq_40625778/article/details/107022670 机票管理系统设计与实现(二):https://blog.csdn.net/qq_40625778/article/details/107039441 更多源码:...
项目概述:本项目采用Python语言开发,旨在实现对携程机票数据的爬取。整个项目由多个模块组成,包括HTML、CSS、JavaScript和Python等,共计82个文件。具体文件类型分布如下:HTML文档19个,Python脚本16个,CSS样式...
机票预订系统是为机场工作人员和客户提供订票退票查询等与机票相关内容和管理的系统,克服了存储乘客信息少,查询效率低下等问题,实现航空公司的机票销售的自动化。便于机场工作人员对机票信息进行管理,提高了机场...
用asp做的一个基于WEB的航空机票管理系统,用作课程设计比较不错,后台管理员名admin密码admin,可以实现机票查询销售,添加等后台管理功能
运用c语言实现机票管理系统,包含文件读取与存储,用户及管理员密码登录,修改、添加、查阅、预定机票等功能。
java 简单实现 抓取酷讯网的机票数据
机票预订系统——大数据库课程设计——设计报告材料.pdf机票预订系统——大数据库课程设计——设计报告材料.pdf机票预订系统——大数据库课程设计——设计报告材料.pdf机票预订系统——大数据库课程设计——设计报告...
基于ssm+mysql的航空机票预订系统的实现(本科毕业设计+数据库).zip 基于ssm+mysql的航空机票预订系统的实现(本科毕业设计+数据库).zip 基于ssm+mysql的航空机票预订系统的实现(本科毕业设计+数据库).zip ...
基于SSM的“航空机票预订系统”的设计与实现基于SSM的“航空机票预订系统”的设计与实现基于SSM的“航空机票预订系统”的设计与实现基于SSM的“航空机票预订系统”的设计与实现基于SSM的“航空机票预订系统”的设计...