Having this as a separate file is quite reasonable, but right now we have all of our web-scraping/crawling code as functions in `data/crawler.py`. It'd be great to move this as a function there too to be consistent with the current convention. Additionally, at the bottom of `crawler.py`, you'll also need to modify `supported_modes` so that we can run this by calling `PYTHONPATH=.. data/crawler.py opendata_courses`. (You can probably also delete a bunch of code that your new scraper deprecates in that file too :smiley:).