2011-02-23 51 views
5

看来他们已经取消了他们的API。他们有一个不太强大的工具,称为Search Gateway。我将如何使用这个去刮取机票价格数据?它甚至有可能吗?如果可能,我宁愿在PHP或Ruby on Rails中工作。如何从kayak.com刮取定价数据?

具体而言,我想开始收集大约10对城市之间最低机票价格的数据。我想获得一天中每个小时的数据。我可以亲自检查皮艇,但我希望能够自动执行此过程。

+1

我不会那样做,因为屏幕报废是一个基本的破解,我的意思是每次他们要更新他们的网站,你将不得不更新你的脚本。此外,从法律角度来看,他们可以在未经他们同意的情况下起诉您使用他们的数据,或者只是禁止您的服务器IP。 – RageZ 2011-02-23 02:33:25

+1

是的,你可以肯定,如果他们已经摆脱了他们的API,他们可能不希望你从那里获取数据。 – Brad 2011-02-23 02:54:41

+0

好点。我刚写了一封电子邮件并征求了许可。希望他们不会介意,因为我的小型项目不会给他们的服务器带来不适当的压力。 – dasl 2011-02-23 03:27:58

回答

2

Railscast在screen scraping上有一集。基本上你可以使用nokogiri gem解析网站来获取你需要的数据。

至于定期运行它,您可以为此创建一个cron作业。这里有一个相关的stackoverflow question

如果你想承载网站的某处我建议Heroku。唯一不会自由的是每天不止一次运行cron作业。但是如果你每天只运行一次就可以免费托管所有东西。

+0

有人已经这样做了吗?我打算自己做这样的事情,但是我想知道是否有任何OSS项目也这样做.. – 2012-07-12 20:53:24

2
+0

截至2015年,“对不起,KAYAK不再提供此服务。” – htatche 2015-07-22 12:32:30

+0

截至2017年,“410对不起,我们无法找到该页面。” – rigsby 2017-06-12 23:10:41

0

尝试iMacros,我用它的屏幕抓取各种酒店预订网站。

但即使有一个好的工具,它仍然是很多工作。所以我不会这样做只是预订一个航班...

-1

你可以使用Python的请求库;然而,Kayak使用cookie和http头来检测并过滤来自自动化脚本和漫游器的流量。为了绕过这一点,你必须了解什么是GET和POST请求,以及如何设置cookie。另外,如果不欺骗正确的HTTP标头,脚本/机器人将被检测到。这里是一个工作python脚本,成功webscrapes皮艇:https://github.com/seaunderwater/kayak-webscraper

+1

虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/18988139) – dferenc 2018-03-02 20:00:09

+0

请不要只是发布一些工具或库作为答案。至少在答案中演示[它如何解决问题](http://meta.stackoverflow.com/a/251605)。 – LW001 2018-03-02 21:04:36