當初會想要做機票比價爬蟲的起心動念是因為最近有想要出國玩,但也同時希望能省機票錢,剛好朋友傳了 Line Travel 快速比價找出便宜機票網頁,所以想說為何不來寫個機票爬蟲小程式! 加上 Expedia、Skyscanner 這種機票比價網要抓資料的話,可能會比較容易被擋或有雷要踩,所以就試著在 Line Travel 爬想要的便宜機票資料。接著,把機票資料存到 Google Sheet 雲端做備份;最後,把前三筆最便宜的航空公司機票組合/價格/兩人總價/購買連結用 Line Notify 回傳,這樣隨時可以把握最便宜的機票跟航空公司優惠組合啦!
- 從Line Travel網頁來爬取最新的機票資料 (Scraping Air Ticket Prices)
- 把爬取的機票資料存成
CSV
檔到本地端 (Saving Air Ticket Price Data as CSV) - 將航空公司機票價格資料上傳至Google Sheets (Uploading Air Ticket Price Data to Google Sheets)
- 透過 Line Notify 定期傳最低價格的前3家航空公司的通知 (Regular Notifications via Line Notify: Top 3 Airlines with Lowest Prices)
- 把抓下來的航空公司機會組合資料 URL 轉成 Short URL,解決 Line Notify 字數限制的問題 (Shorten URLs for Airline Data to Fix Line Notify Character Limit)
- 需要 Python 3
- 需要安裝
selenium
、BeautifulSoup4
、lxml
、pandas
、pygsheets
和schedule
套件
selenium
、BeautifulSoup4
和lxml
套件是用來爬取機票和解析網頁用pandas
套件是把資料轉成二維並且簡單視覺化用pygsheets
套件是把資料存到Google Sheet
,但需要先到Google Cloud
串接Google Sheet API
,詳細可參考這位大大的教學,裡面有詳細說明如何 用 Python 連結 Google Sheet API!:)schedule
套件是用來執行定時排程任務用的,有多餘的時間/金錢可以選擇部署到雲端上,但其實沒有部署到雲上,也可以把程式改寫成你想要的格式後,直接在本地端執行air_ticket_scraper.ipynb
或是用 CMD 執行air_ticket_scraping_main.py
檔案,只要不把程式關掉就可以一直執行排程功能的!
- 如果預算夠的話,把它部署到雲端上,就可以固定某個時間傳最新的機票優惠方案。
- 透過 Line Notify 機器人上輸入特定日期,根據輸入之特定日期,爬出相對應的機票優惠方案。