鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Python  C/ 爬取 攜程國(guó)際機(jī)票,大家有好的方法嗎

爬取 攜程國(guó)際機(jī)票,大家有好的方法嗎

1.最近再做爬取攜程的國(guó)際機(jī)票,之前沒寫過爬蟲,邊看邊學(xué),發(fā)現(xiàn)網(wǎng)上有很多爬取攜程國(guó)內(nèi)機(jī)票的教程,爬取國(guó)際機(jī)票的很少。
2.因?yàn)閿y程是異步加載的并且參數(shù)很多,還有動(dòng)態(tài)的參數(shù),看著比較麻煩。所以我現(xiàn)在是用的 selenium來模擬瀏覽器抓取的。但是效率又太低。大家一般抓取這樣的網(wǎng)站采取什么技術(shù)或方法,麻煩有了解這方面的指點(diǎn)一下

回答
編輯回答
只愛你

@可好了 謝謝你的回復(fù),我已經(jīng)把需要的飛機(jī)場(chǎng)代碼給爬取到了我是使用的這個(gè)地址拼裝的http://flights.ctrip.com/inte... ,現(xiàn)在的主要是效率,太低。模擬一次請(qǐng)求,需要大概20秒的時(shí)間,才能把整個(gè)航線的航班數(shù)據(jù)爬取下來。 多線程的跑selenium 有很多問題。今天在看一下

2017年6月27日 16:35
編輯回答
懶洋洋

剛看了下攜程的網(wǎng)址.

這個(gè)url是北京(BJS)到布拉格(PRG) 2018-04-11 當(dāng)天的全部機(jī)票.
http://flights.ctrip.com/inte...

這個(gè)url是北京(BJS)到雅典(ATH) 2018-04-03 當(dāng)天的全部機(jī)票.
http://flights.ctrip.com/inte...

兩個(gè)url只是城市的編號(hào)不同. 如果想獲取北京到世界各地的機(jī)票信息. 只需要拼接下DCity就可以獲取到

想獲取 2018-04-012 的機(jī)票, 就把日期改一下.
這樣就獲取到了url.然后模擬發(fā)起請(qǐng)求,獲取請(qǐng)求頁面的Document樹,在去解析里面的數(shù)據(jù).
感覺還可以.并不是特別難. 難點(diǎn)就是獲取各個(gè)城市的標(biāo)號(hào).
另外如果攜程有反爬蟲,可以用代理ip.這樣成功率會(huì)高很多.不會(huì)被封.

2018年7月19日 01:34
編輯回答
撥弦

我今天也遇到這個(gè)問題了,模擬參數(shù)請(qǐng)求返回為空
圖片描述

2018年7月26日 14:10