基於Scrapy如何寫一個爬蟲抓取藝龍、攜程等網站的機票價格進行分析並做機票價格預測?

1.爬取數據

像藝龍、攜程、去哪兒這類網站都是用Ajax請求並以一個JSON文件的形式返回機票的相關數據,因為需要連續爬很多天(例如連續一個月或者更多)的機票數據,Ajax請求鏈接是動態改變的,目前還沒有搞明白Ajax請求鏈接的變更規律,沒辦法實現自行動態抓取,想請教一下做過類似工作的前輩爬取這類數據需要如何繼續往下走,時間比較緊,希望有人能指明方向,自己摸索得進展很慢。

======Update at 2015-4-17=======

經過一晚上的研究,已經對藝龍上的機票數據做到自動抓取了,主要是分析Ajax的鏈接變更規律,對於藝龍只需要改DepartDate就可以了。

很感謝@秋雨葉,這個攜程的鏈接不用動態請求數據,可以直接獲取到,已經嘗試過!

2. 預測機票價格

因為數據還沒有獲取到,分析預測的演算法還沒有確定下來, 應該就是採取機器學習的演算法,如回歸、聚類等等,如果有前輩對此有任何建議,還勞煩不吝賜教,多謝!

======Update at 2015-5-14=======

畢設題目是要基於Mahout對機票進行分析預測,看了很多英文論文,用的分析方法有Rule Learning, Q-Learning, Time series, Stacked Generalization, Hand-Crafted Rule, Logistic Regression, Ripple Down Rule Learner, Linear SVM, PLS Regression, 但是Mahout演算法集中有的只有其中的少數,如SVM和Logistic Regression等,於是有些苦惱,不知道利用什麼演算法接著分析,想請教各位前輩,針對此類分析預測問題該用什麼演算法?


1. 通過wireshark,模擬請求,最好能找到直接的api,建議從app出發

2. 參見http://decide.com 現在是amzon的一部分


第一個問題題主已經弄明白了,對於第二個問題有一篇大概是2003年的論文《To buy or not to buy: mining airfare data to minimize ticket purchase price》(它是《大數據時代》中的一個案例),這篇文章把機票價格預測的方法寫的很詳細了。


http://english.ctrip.com/chinaflights/shanghai-to-beijing/tickets-sha-bjs/?flighttype=sdcity=shaacity=bjsrelddate=0startdate=2015-04-17startday=frirelweek=0searchboxArg=t


如果請求鏈路太複雜,直接用瀏覽器內核吧,phantomjs之類的,渲染頁面,模擬點擊來實現


酒店價格等信息採集爬蟲(攜程)


Scrapy不是很好用啦,直接用requests來抓取,請參考我的幾篇文章:

再看API設計--從黑客的角度 · APRIL 1985

維護爬蟲倒是非常麻煩的事情。還好技術過硬最後拿到了堅持了一年的機票。做成了愛飛狗旅行這個小程序,實現機票歷史價格和預測:愛飛狗旅行 | 知曉程序


你好,我最近做實驗也需要爬機票價格,能否加個好友(qq:2506876521)請教一下,非常非常感謝


對於有js或者Ajax請求的,建議配合selenium!


我也在做機票預測,爬蟲不知道怎麼入手來寫,誠心請題主不吝賜教,最好能發給demo,感謝萬分,qq是328690449,求助ing。


樓主,我也在找抓取攜程國際機票數據的辦法。你如果已經研究出來了,請不吝賜教,,發個demo 給我


題主您好~我的畢設也是和爬蟲相關的,遇到了和您類似的問題,可以麻煩您稍微指點一下思路嘛?也是對於Ajax請求的數據不知道如何處理= =多謝題主了~我的qq是1263108183,真心求助=_=


你好,看到你提的問題,很感興趣,最近在籌劃創業,10年前畢業那會也曾經設計了一個基於專家推薦的智能原型系統,目前準備做相對智能的機票預訂網站,依據歷史數據提供機票價格預測和抓取即期查詢價格提供預訂,我的qq:7663354 微信:title-zhu,歡迎加我,面聊,謝謝


您好,我的論文也需要至少一整年的機票價格數據,想問下你爬的數據是在同一時間爬取的嗎?還是每天跟蹤爬取呢?


推薦閱讀:

為什麼覺得Scrapy很難?
Python安裝Scrapy出現以下錯誤怎麼辦?
為何抵觸爬蟲?
如何高效學習python的某一個包?
請問scrapy源碼的入口是哪個?

TAG:數據挖掘 | 數據分析 | 爬蟲計算機網路 | scrapy |