日期:2014-05-20  浏览次数:20807 次

关于航班数据采集的更新问题
最近接手的航班查询项目,在论坛网友的帮助下,数据采集部分基本完成,只剩一些效率优化了

由于航班价格并不是稳定的,所以在2月13号查询广州到北京在2月28号的航班数据跟在2月25号查询同样的信息时可能在价格上有变化,对此我们需要对之前采集到的数据进行更新,但是如果用重新采集的方法进行更新,将会使得之前采集的工作失去意义而且这个方法的效率又是很低的,所以在这里想问一下有做过一些机票搜索项目的大大,因为这些实时性的数据,在更新上还是比较重要的,所以想问一下这种更新问题怎样做比较好(可以用携程做例子)

自己也上网查过一些方法,如检测页面的<meta>里的modified date,不过不是所有的页面都会有这个信息的
对页面使用MD5压缩算法,以后访问时先检测MD5是否相等,之后再进行更新,但是考虑到有可能广告不同或其他因素导致页面的改变,所以希望各位不惜赐教,可以讲讲思路什么的

好吧其实这个问题跟java关系不算很大,但这个项目是用java做的,所以应该能在这里提问吧
------解决方案--------------------
我是用java进行抓取的。  我遇到的是我抓取页面。但是有用的值在动态的js中。我会来的数据没有我想要的。如何能获得js中的数据呢?
------解决方案--------------------
引用:
我是用java进行抓取的。  我遇到的是我抓取页面。但是有用的值在动态的js中。我会来的数据没有我想要的。如何能获得js中的数据呢?


这贴应该已经死了才对,没想到还有人回复
其实我也遇到这个问题
这里就随便说说自己的方法(当然这是比较没根据的)
1.用一个叫htmlunit的东西,只要等待足够多时间好像是可以得到动态获取的数据,即页面源代码上没有的东西,问题是这个东东貌似很有问题,有些网站好像不行,这可能是我的方法不对,不过个人不建议
2.从firebug里的数据包直接找获取数据的直接来源,直接修改里面的传递参数来获得自己想要的数据(略不严谨),但本人主要用个方法,想去哪儿和淘宝之类的都可以解决哦,不过一般是json格式的,可用json-lib解析,注意这货有很多外部库,都要添加进去
3.参考《自己动手写爬虫》一书,里面有写方法,由于自己没看懂,不便评论,可以研究

当然写的可能不太靠谱,但也算是自己蒙出来的一些方法,希望对你有帮助