Skip to content

Instantly share code, notes, and snippets.

@aprilcoskun
Last active December 5, 2020 15:40
Show Gist options
  • Save aprilcoskun/38ce2e88b51884ad5e0e9197b31461aa to your computer and use it in GitHub Desktop.
Save aprilcoskun/38ce2e88b51884ad5e0e9197b31461aa to your computer and use it in GitHub Desktop.
Düzce Üniversitesi 2020-2021 Güz Dönemi sınav sonuçlarından veri seti oluşturmak
from pymongo import MongoClient
from requests import get
from time import sleep
# local mongodb collection for dumping data
col = MongoClient("mongodb://192.168.1.224:27017")["duzce"]["results-82"]
resultsURL = "https://obs.duzce.edu.tr/api/api/ogrenci/sinavsonuclari"
# Get result per student
# student numbers range is estimated, I am not sure what is the real range of numbers
for i in range(100000, 200000):
# wait for api cooldown(school's servers are shit)
sleep(0.5)
# request exam result of student by term 82(2020-2021 Güz Dönemi)
res = get(resultsURL, params={"obkNo": i, "donemNo": 82})
# skip student if there is no result exists
if res.status_code != 200 or len(res.json()) == 0:
print("no result found for student: {}".format(i))
continue
# upsert every result separately
data = res.json()
for j in data:
j["obkNo"] = i
col.update_one({"obkNo": i, "dersNo": j["dersNo"]}, {"$set": j}, upsert=True)
print("{} result(s) inserted for student: {}".format(len(data), i))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment