/dmv-appointment-scraper

Get the next available appointment time at the California DMV without using their sucky site

Primary LanguagePython

dmv-appointment-scraper

What?

Parse the California DMV site to get the next available appointment time.

Why?

Because their site's usability is foreshadowing of the fun times you can expect for your visit.

Features

Currently, Chrome is assumed to the browser of choice. This is trivial to extend, all that is required is to install the webdriver and to add support in the code.

The results can be emailed. Emails are sent via gmail smtp servers.

Installation

You'll need to install chromedriver. This is for selenium to open the site in a browser and navigate the site.

Selenium versions correspond with browser versions, newer versions of Chrome will need updated selenium. To use a newer version of selenium, bump the pinned version of selenium in requirements.txt.

Usage

make run will launch the DMV site in Chrome, navigate through multiple pages of their god awful site, and return the parsed result.

make email will email the results. Configure the sender and recipient in config.yaml.

Similar Projects

I really should have looked for prior art before embarking on this journey. Oh well, it was a good excuse to learn BeatifulSoup and Selenium.

https://github.com/vartan/ca-dmv-poller is a Node application. It looks like it only deals with requests, no need to use a webdriver. This will be much lighter than this application.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request 🙌