看来他们已经取消了他们的API。他们有一个不太强大的工具,称为Search Gateway。我将如何使用这个去刮取机票价格数据?它甚至有可能吗?如果可能,我宁愿在PHP或Ruby on Rails中工作。如何从kayak.com刮取定价数据?
具体而言,我想开始收集大约10对城市之间最低机票价格的数据。我想获得一天中每个小时的数据。我可以亲自检查皮艇,但我希望能够自动执行此过程。
看来他们已经取消了他们的API。他们有一个不太强大的工具,称为Search Gateway。我将如何使用这个去刮取机票价格数据?它甚至有可能吗?如果可能,我宁愿在PHP或Ruby on Rails中工作。如何从kayak.com刮取定价数据?
具体而言,我想开始收集大约10对城市之间最低机票价格的数据。我想获得一天中每个小时的数据。我可以亲自检查皮艇,但我希望能够自动执行此过程。
Railscast在screen scraping上有一集。基本上你可以使用nokogiri gem解析网站来获取你需要的数据。
至于定期运行它,您可以为此创建一个cron作业。这里有一个相关的stackoverflow question。
如果你想承载网站的某处我建议Heroku。唯一不会自由的是每天不止一次运行cron作业。但是如果你每天只运行一次就可以免费托管所有东西。
有人已经这样做了吗?我打算自己做这样的事情,但是我想知道是否有任何OSS项目也这样做.. – 2012-07-12 20:53:24
尝试iMacros,我用它的屏幕抓取各种酒店预订网站。
但即使有一个好的工具,它仍然是很多工作。所以我不会这样做只是预订一个航班...
你可以使用Python的请求库;然而,Kayak使用cookie和http头来检测并过滤来自自动化脚本和漫游器的流量。为了绕过这一点,你必须了解什么是GET和POST请求,以及如何设置cookie。另外,如果不欺骗正确的HTTP标头,脚本/机器人将被检测到。这里是一个工作python脚本,成功webscrapes皮艇:https://github.com/seaunderwater/kayak-webscraper
我不会那样做,因为屏幕报废是一个基本的破解,我的意思是每次他们要更新他们的网站,你将不得不更新你的脚本。此外,从法律角度来看,他们可以在未经他们同意的情况下起诉您使用他们的数据,或者只是禁止您的服务器IP。 – RageZ 2011-02-23 02:33:25
是的,你可以肯定,如果他们已经摆脱了他们的API,他们可能不希望你从那里获取数据。 – Brad 2011-02-23 02:54:41
好点。我刚写了一封电子邮件并征求了许可。希望他们不会介意,因为我的小型项目不会给他们的服务器带来不适当的压力。 – dasl 2011-02-23 03:27:58