This project provides tools and models for users to analyze, forecast, and collect data regarding flights and prices. There are currently many features in initial stages and in development. The current features (as of 8/29/22) are:
- Scraping tools for Google Flights
- Base analytical tools/methods for price forecasting/summary
- Models to demonstrate ML techniques on forecasting
- API for access to previously collected data
Flight price calculation can either use newly scraped data (scrapes upon running it) or cached data that reports a price-change confidence determined by a trained model. Currently, many features of this application are in development. You can find updates and use some of the functionalities online here.
The web scraping tool is currently functional only for scraping round trip flights for a given origin, destination, and date range. It can be easily used in a script or a jupyter notebook.
Note that the following packages are absolutely required as dependencies:
- tqdm
- selenium (make sure to update your chromedriver!)
- json
You can easily install this by running pip install -r requirements.txt.
The main scraping function that makes up the backbone of most other functionalities is scrape_data. Note that the cache parameter refers to whether this output should be saved in a caching system. See further documentation on caching (to be available soon).
# Parameter documentation
# scrape_data(origin : str, destination : str, date_leave : str, date_return : str, cache : bool = False) -> dict
# Try to keep the dates in format YYYY-mm-dd
result = scrape_data('JFK', 'IST', '2022-05-20', '2022-06-10')
# Can also input list of date strings for date_leave and date_return
leave_dates = ['2022-05-20', '2022-05-21', '2022-05-22']
return_dates = ['2022-06-10', '2022-06-11', '2022-06-12']
range_result = scrape_data('JFK', 'IST', leave_dates, return_dates)
Here are some great flights I was able to find and actually booked when planning my travel/vacations:
- NYC ➡️ AMS (May 9), AMS ➡️ IST (May 12), IST ➡️ NYC (May 23) | Trip Total: $611 as of March 7, 2022