Scrape airline ticket prices and analyze their patterns
CoffeeScript Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
casper
README.md Fixed typo in readme Mar 28, 2013
flightprice.py Removed Hipmunk and added Bing. Added casperjs_cmd option Mar 28, 2013
google_prices.coffee
parse.py
query.py
record_prices.py
sample_sfotoboston.json
test_config.py

README.md

flight_prices

Scrape flight prices from online sites and analyse them for patterns. Currently supports getting prices from:

  • Bing Travel
  • Southwest

Quick Start

Use a JSON configuration file to specify which days-of-week and airports to search. For example, this searches flights from San Francisco area (SFO, SJC, and OAK) to Boston (BOS), leaving on Fridays and returning on Sunday (2 days later) or Monday (3 days later):

{
    "origins": ["SFO", "SJC", "OAK"],
    "destinations": ["BOS"],

    "days": [
        ["Fri", 2],
        ["Fri", 3]
    ]
}

This config file is available in the sources as sample_sfotoboston.json. Record today's prices using:

python record_prices.py sample_sftoboston.json

The prices are saved to a file db/prices.db. Run the command in your crontab to check prices every day:

crontab -e

# In editor
@daily cd /home/$username/flight_prices && python record_prices.py config.json

Verifying your configuration

Sometimes you may want to make sure that ["Fri", 2] really does mean returning on Sunday. The included test_config.py script prints all the trip combinations that your configuration file specifies:

python test_config.py sample_sfotoboston.json

# Prints:
#
# Trip: SFO -> BOS (Fri); BOS -> SFO (Sun)
# Trip: SFO -> BOS (Fri); BOS -> SFO (Mon)
# Trip: SJC -> BOS (Fri); BOS -> SJC (Sun)
# Trip: SJC -> BOS (Fri); BOS -> SJC (Mon)
# Trip: OAK -> BOS (Fri); BOS -> OAK (Sun)
# Trip: OAK -> BOS (Fri); BOS -> OAK (Mon)

Notes for Windows Users

CasperJS provides some special instructions for those running on Windows. You may have to set the casperjs_cmd configuration option (in your JSON config file) to point to casperjs.bat; for example:

{
    /* ... */
    "days": [
        /* ... */
    ],

    "casperjs_cmd": "C:\\casperjs\\batchbin\\casperjs.bat"
}

Querying Saved Prices

(This functionality is not yet implemented.)