A collection of utilities for scraping data for Cal Poly's Nimbus voice assistant.
Install pipenv with pip and run
pipenv install
in the project folder.
import sustainer
# returns a JSON string of CSV data from all modules
json = sustainer.scrape_all()
# For any module "scraping_module",
from scraping_module import ScrapingModule
s = ScrapingModule()
# returns a CSV string of scraped data
csv = s.scrape()
- Professor contact information (office, phone, email)
- Class section times (start / end)
- Which professor is teaching which class
- Class locations
- Class types (lab / lec)
- Contact information (phone, email, box, contact person)
- Advisor info (name, phone, email)
- Affiliations and types
- Descriptions
- Course requirements (coreq, prereq, concurrent, and recommended)
- Units
- Department
- Terms typically offered
- Academic calendar events and dates
- Faculty contact information (office, phone, email)
- Professor research interests
- Add reporting when website format changes are detected
- Add GE areas to course_scraper
- Create degree program scraper (catalog.calpoly.edu/programsaz/)
- Integrate more calendars into calendar_scraper
- Add logging
Feel free to make pull requests or report issues. For major changes, please open an issue first to discuss. Also, check out onboarding.txt (coming soon)