看來他們已經取消了他們的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