💡 pywebsoc
A python package for fetching data from the University of California, Irvine WebSoC (Schedule of Classes)
Easily view courses and their details without needing to go into WebSoC
- Scrapes data from UCI WebSoC and returns a JSON data of courses.
- :warning: WARNING: Do not use this package any ways to exploit or harm UCI and its server.
Main Functions
- The package consists of a main function, webSocAPI, in the webscrape module in the websocAPI package
- Some utils functions are inside utils module in the websocAPI package
Example Usages
from websocAPI import getYear, websocAPI
obj = webSocAPI(term=getYear("Spring", 2023),dept="I&C SCI", courseNum="193")
print(obj)
# {'I&C Sci 193 TUTORING IN ICS': [{'Code': '35990', 'Type': 'Lec', 'Sec': 'A', 'Units': '2', 'Instructor':
# ['WONG-MA, J.', 'SHINDLER, M.'], 'Time': 'Tu \xa0 2:00- 3:20p', 'Place': 'ALP 1700', 'Final': 'Thu, Jun 15,
# 1:30-3:30pm', 'Max': '75', 'Enr': '0', 'WL': 'n/a', 'Req': '9', 'Rstr': 'B', 'Textbooks': 'Bookstore', 'Web':
# None, 'Status': 'OPEN'}]}
- or you can also have a pretty json:
from websocAPI import getYear, websocAPI, prettify
obj = webSocAPI(term=getYear("Spring", 2023),dept="I&C SCI", courseNum="193")
print(prettify(obj))
# {
# "I&C Sci 193 TUTORING IN ICS": [
# {
# "Code": "35990",
# "Type": "Lec",
# "Sec": "A",
# "Units": "2",
# "Instructor": [
# "WONG-MA, J.",
# "SHINDLER, M."
# ],
# "Time": "Tu \u00a0 2:00- 3:20p",
# "Place": "ALP 1700",
# "Final": "Thu, Jun 15, 1:30-3:30pm",
# "Max": "75",
# "Enr": "0",
# "WL": "n/a",
# "Req": "9",
# "Rstr": "B",
# "Textbooks": "Bookstore",
# "Web": null,
# "Status": "OPEN"
# }
# ]
# }
Arguments and Parameters
Function webSocAPI
webSocAPI's Parameters |
Explanation |
Default Value |
Example Value |
term |
Year and Term |
"" |
"2023-14" |
ge |
General education |
"ANY" |
"GE-2" |
dept |
Department Name |
"ALL" |
"I&C SCI" |
courseNum |
Course number or range |
"" |
"193" |
divison |
Course level |
"ANY" |
"0xx" |
secCodes |
Course code or range |
"" |
"35870" |
instrName |
Instructor |
"" |
"Doe, J." |
courseTitle |
Course title contains... |
"" |
"GAME" |
sectionType |
Course Type |
"ALL" |
"LEC" |
units |
Units |
"" |
"4" |
days |
Days |
"" |
"TuTh" |
startTime |
Starting time after |
"9:00am" |
|
endTime |
Ending time before |
"" |
"9:00pm" |
maxCap |
Maximum Capacity |
"" |
">50" |
fullCourses |
Courses full option |
"ANY" |
"SkipFull" |
cancelledCourses |
Cancelled COurses |
"EXCLUDE" |
"Include" |
building |
Building Code |
"" |
"ELH" |
room |
Class Room Number |
"" |
"100" |
webSocAPI Parameters' Valid Values
term
Valid Value |
Explanation |
2023-14 |
2023 is the year and 14 indicates Spring |
2023-03 |
2023 is the year and 76 indicates Winter |
- term can be autofilled using utils.getYear()
- Please check utils section
ge
Valid Value |
Explanation |
GE-1A |
Lower Divison Writing |
GE-1B |
Upper Divison Writing |
GE-2 |
Science and Technology |
GE-3 |
Social and Behavioral Sciences |
GE-4 |
Arts and Humanities |
GE-5 |
Quantitative, Symbolic, and Computational Reasoning |
GE-5A |
Quantitative Literacy |
GE-5B |
Formal Reasoning |
GE-6 |
Language Other Than English |
GE-7 |
Multicultural Studies |
GE-8 |
International/Global Issues |
dept
Valid Value |
Explanation |
AC ENG |
Academic English |
AFAM |
African American Studies |
ANATOMY |
Anatomy and Neurobiology |
ANESTH |
Anesthesiology |
ANTHRO |
Anthropology |
ARABIC |
Arabic |
ARMN |
Armenian (started 2018 Spg) |
ART |
Art |
ART HIS |
Art History |
ARTS |
Arts |
ARTSHUM |
Arts and Humanities |
ASIANAM |
Asian American Studies |
BANA |
Business Analytics (started 2017 SS2) |
BATS |
Biomedical and Translational Science |
BIO SCI |
Biological Sciences |
BIOCHEM |
Biological Chemistry |
BME |
Biomedical Engineering |
CAMPREC |
Campus Recreation |
CBE |
Chemical and Biomolecular Engineering (started 2018 Fall) |
CEM |
Community and Environmental Medicine |
CHC/LAT |
Chicano Latino |
CHEM |
Chemistry |
CHINESE |
Chinese |
CLASSIC |
Classics |
CLT&THY |
Culture & Theory |
COGS |
Cognitive Sciences |
COM LIT |
Comparative Literature |
COMPSCI |
Computer Science |
CRITISM |
Criticism |
CRM/LAW |
Criminology, Law and Society |
CSE |
Computer Science and Engineering |
DANCE |
Dance |
DATA |
Data Science (started 2022 SS1) |
DERM |
Dermatology |
DEV BIO |
Developmental and Cell Biology |
DRAMA |
Drama |
EARTHSS |
Earth System Science |
EAS |
East Asian Studies (started 2019 Fall) |
ECO EVO |
Ecology and Evolutionary Biology |
ECON |
Economics |
ECPS |
Embedded and Cyber-Physical Systems |
ED AFF |
Educational Affairs (Sch of Med) |
EDUC |
Education |
EECS |
Electrical Engineering & Computer Science |
EHS |
Environmental Health Sciences |
ENGLISH |
English |
ENGR |
Engineering |
ENGRCEE |
Engineering, Civil and Environmental |
ENGRMAE |
Engineering, Mechanical and Aerospace |
EPIDEM |
Epidemiology |
ER MED |
Emergency Medicine |
EURO ST |
European Studies |
FAM MED |
Family Medicine |
FIN |
Finance (started 2017 Fall) |
FLM&MDA |
Film and Media Studies |
FRENCH |
French |
GDIM |
Game Design and Interactive Media (started 2021 Fall) |
GEN&SEX |
Gender and Sexuality Studies |
GERMAN |
German |
GLBL ME |
Global Middle East Studies |
GLBLCLT |
Global Cultures |
GREEK |
Greek |
HEBREW |
Hebrew |
HINDI |
Hindi |
HISTORY |
History |
HUMAN |
Humanities |
HUMARTS |
Humanities and Arts |
I&C SCI |
Information and Computer Science |
IN4MATX |
Informatics |
INNO |
Masters of Innovation and Entrepreneurship (started 2019 Fall) |
INT MED |
Internal Medicine |
INTL ST |
International Studies |
IRAN |
Iranian (started 2020 Fall) |
ITALIAN |
Italian |
JAPANSE |
Japanese |
KOREAN |
Korean |
LATIN |
Latin |
LAW |
Law |
LIT JRN |
Literary Journalism |
LPS |
Logic and Philosophy of Science |
LSCI |
Language Science (started 2019 Fall) |
M&MG |
Microbiology and Molecular Genetics |
MATH |
Mathematics |
MED |
Medicine |
MED ED |
Medical Education |
MED HUM |
Medical Humanities |
MGMT |
Management |
MGMT EP |
Executive MBA |
MGMT FE |
Fully Employed MBA |
MGMT HC |
Health Care MBA |
MGMTMBA |
Management MBA |
MGMTPHD |
Management PhD |
MIC BIO |
Microbiology |
MOL BIO |
Molecular Biology and Biochemistry |
MPAC |
Accounting |
MSE |
Materials Science and Engineering (started 2020 Fall) |
MUSIC |
Music |
NET SYS |
Networked Systems |
NEURBIO |
Neurobiology and Behavior |
NEUROL |
Neurology |
NUR SCI |
Nursing Science |
OB/GYN |
Obstetrics and Gynecology |
OPHTHAL |
Ophthalmology |
PATH |
Pathology and Laboratory Medicine |
PED GEN |
Pediatrics Genetics |
PEDS |
Pediatrics |
PERSIAN |
Persian |
PHARM |
Pharmacology (started 2020 Fall) |
PHILOS |
Philosophy |
PHMD |
Pharmacy (started 2021 Fall) |
PHRMSCI |
Pharmaceutical Sciences |
PHY SCI |
Physical Science |
PHYSICS |
Physics |
PHYSIO |
Physiology and Biophysics |
PLASTIC |
Plastic Surgery |
PM&R |
Physical Medicine and Rehabilitation |
POL SCI |
Political Science |
PORTUG |
Portuguese |
PSCI |
Psychological Science (started 2019 Fall) |
PSYCH |
Cognitive Sciences |
PUB POL |
Public Policy |
PUBHLTH |
Public Health |
RADIO |
Radiology |
REL STD |
Religious Studies |
ROTC |
Reserve Officers' Training Corps |
RUSSIAN |
Russian |
SOC SCI |
Social Science |
SOCECOL |
Social Ecology |
SOCIOL |
Sociology |
SPANISH |
Spanish |
SPPS |
Social Policy & Public Service |
STATS |
Statistics |
SURGERY |
Surgery |
SWE |
Software Engineering (started 2019 Fall) |
TAGALOG |
Tagalog |
TOX |
Toxicology |
UCDC |
UC Washington DC |
UNI AFF |
University Affairs |
UNI STU |
University Studies |
UPPP |
Urban Planning and Public Policy (started 2018 Fall) |
VIETMSE |
Vietnamese |
VIS STD |
Visual Studies |
WRITING |
Writing |
courseNum
Valid Value |
Explanation |
5 |
{dept} 5 equiavlent |
1-20 |
{dept} 1 TO {dept} 20 equivalent |
5, 10 |
{dept} 5 equiavlent AND {dept} 10 equivalent |
divison
Valid Value |
Explanation |
0xx |
Lower Divsion Only |
1xx |
Upper Divsion Only |
2xx |
Graduate/Professional Only |
secCodes
Valid Value |
Explanation |
35980 |
Course Code 35980 |
35000-35600 |
Courses with codes between 35000 and 36000 |
instrName
Valid Value |
Explanation |
Doe |
Last Name of Professors/TA |
courseTitle
Valid Value |
Explanation |
GAME |
Courses names that include GAME will be shown |
sectionType
Valid Value |
Explanation |
ACT |
Activity Courses |
COL |
Colloquium Courses |
DIS |
Discussion Courses |
FLD |
Field Work Courses |
LAB |
Laboratory Courses |
LEC |
Lecture Courses |
QIZ |
Quiz Courses |
RES |
Research Courses |
SEM |
Seminar Courses |
STU |
Studio Courses |
TUT |
Tutorial Courses |
units
Valid Value |
Explanation |
4 |
4 Unit course, Any matching number is allowed |
VAR |
Variable Unit course |
days
Valid Value |
Explanation |
MWF |
Includes Monday, Wednesday, Friday |
MO |
Includes Monday |
WE |
Includes Wednesday |
FR |
Includes Friday |
TuTh |
Includes Tuesday, Thursday |
Tu |
Includes Tuesday |
Th |
Includes Thursday |
startTime
Valid Value |
Explanation |
9:00am |
classes that start at 9:00 AM or Later. Other times that follow the same format should work |
1:00pm |
classes that start at 1:00 PM or Later. Other times that follow the same format should wor |
endTime
Valid Value |
Explanation |
1:00pm |
classes that end at 1:00 PM or Earlier |
maxCap
Valid Value |
Explanation |
>50 |
Maximum capacity is atleast 50 |
<100 |
Maximum capacity is less than 100 |
fullCourses
Valid Value |
Explanation |
SkipFullWaitlist |
Skip any that are full unless Waitlist has space |
SkipFull |
Skip any that are full |
FullOnly |
Show only courses that are full or waitlisted |
OverEnrolled |
Show only courses that are over-enrolled |
cancelledCourses
Valid Value |
Explanation |
EXCLUDE |
Default, Exclude cancelled courses |
INCLUDE |
Include cancelled courses |
ONLY |
Only show cancelled courses |
building
Valid Value |
Explanation |
ELH |
Engineering Lecture Hall Building Code |
- Please refer to UCI map for list of buildings and their codes
room
Valid Value |
Explanation |
100 |
{building} 100 equivalent classroom |
- Please refer to UCI map for list of buildings and their room numbers
Functions in Utils
Function getYear
Parameter |
Exaplanation |
Default Value |
Example Value |
userTerm |
User customized term |
None (not n/a) |
Spring |
userYear |
User customized year |
None (not n/a) |
2022 |
- Examples of getYear function:
from websocAPI import getYear
default_output = getYear() #This will return the most current year and term of courses available
manual_term = getYear("Winter") #This will return the Winter term of corresponding current year
manual_year = getYear(userYear=2021) ##This will return the most current term of 2021
manual_term_and_year = getYear("Winter", 2022) #This will return Winter term of 2022
Function prettify
Parameter |
Exaplanation |
Default Value |
Example Value |
obj |
Response from webSocAPI |
n/a |
data from webSocAPI |
indents |
indent of prettified json |
1 |
2 |