From 3840273c07cd4aa21177ba61e2be324558dc6c31 Mon Sep 17 00:00:00 2001 From: Thilak Reddy Date: Fri, 16 Jun 2023 09:21:35 +0530 Subject: [PATCH] Added:Mba --- jntuhresults/Executables/examcodes_scraper.py | 32 +++++++++++- .../Executables/jntuhresultscraper.py | 50 ++++++++++++++++++- 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/jntuhresults/Executables/examcodes_scraper.py b/jntuhresults/Executables/examcodes_scraper.py index 64a3e6a1..0e7b6588 100644 --- a/jntuhresults/Executables/examcodes_scraper.py +++ b/jntuhresults/Executables/examcodes_scraper.py @@ -36,6 +36,19 @@ def categorize_exam_code(result_text, exam_code): return None +def categorize_masters_exam_code(result_text,exam_code): + # Categorize the masters exam code based on the result text + if " I Semester" in result_text: + return "1-1" + elif " II Semester" in result_text: + return "1-2" + elif " III Semester" in result_text: + return "2-1" + elif " IV Semester" in result_text: + return "2-2" + else: + return None + def get_exam_codes(): url = "http://results.jntuh.ac.in/jsp/home.jsp" response = requests.get(url) @@ -49,10 +62,22 @@ def get_exam_codes(): }, "bpharmacy": { "R17": {} + }, + "Mpharmacy":{ + "R19":{}, + "R22":{} + }, + "MTech":{ + "R19":{}, + "R22":{} + }, + "MBA":{ + "R19":{}, + "R22":{} } } degree=list(exam_codes.keys()) - for table in range(0,2): + for table in range(0,5): results = soup.find_all("table")[table].find_all("tr") regulations=exam_codes[degree[table]].keys() @@ -65,7 +90,10 @@ def get_exam_codes(): for regulation in regulations: if regulation in result_text: exam_code = extract_exam_code(result_link) - category = categorize_exam_code(result_text, exam_code) + if(table<2): + category = categorize_exam_code(result_text, exam_code) + else: + category = categorize_masters_exam_code(result_text,exam_code) if category is not None: exam_codes[degree[table]][regulation].setdefault(category, []) diff --git a/jntuhresults/Executables/jntuhresultscraper.py b/jntuhresults/Executables/jntuhresultscraper.py index e99138f2..9bf2e2b3 100644 --- a/jntuhresults/Executables/jntuhresultscraper.py +++ b/jntuhresults/Executables/jntuhresultscraper.py @@ -46,6 +46,45 @@ def __init__(self, roll_number): '4-1': ['663', '705', '754', '794', '832', '836'], '4-2': ['678', '700', '789', '809'] } + }, + 'mpharmacy': { + 'R19': + { + '1-1': ['319', '332', '347', '356', '371', '382', '388'], + '1-2': ['328', '336', '344', '353', '368', '379', '387'], + '2-1': ['337', '350', '365', '376', '386'], + '2-2': ['340', '374', '385'] + }, + 'R22': + { + '1-1': ['389'] + } + }, + 'mTech': { + 'R19': + { + '1-1': ['161', '177', '185', '198', '209', '215'], + '1-2': ['157', '165', '174', '182', '195', '206', '214'], + '2-1': ['166', '180', '194', '204', '213'], + '2-2': ['169', '203', '212'] + }, + 'R22': + { + '1-1': ['216'] + } + }, + 'mba': { + 'R19': + { + '1-1': ['297', '316', '323', '350', '362', '368'], + '1-2': ['122', '293', '302', '313', '320', '347', '359', '367'], + '2-1': ['303', '310', '344', '356', '366'], + '2-2': ['120', '307', '341', '353', '365'] + }, + 'R22': + { + '1-1': ['369'] + } } } @@ -59,7 +98,8 @@ def __init__(self, roll_number): # Payloads for different types of result requests self.payloads={ "btech":["°ree=btech&etype=r17&result=null&grad=null&type=intgrade&htno=","°ree=btech&etype=r17&result=gradercrv&grad=null&type=rcrvintgrade&htno="], - "bpharmacy":["°ree=bpharmacy&etype=r17&grad=null&result=null&type=regular&htno=","°ree=bpharmacy&etype=r17&grad=null&result=gradercrv&type=rcrvintgrade&htno="] + "bpharmacy":["°ree=bpharmacy&etype=r17&grad=null&result=null&type=regular&htno=","°ree=bpharmacy&etype=r17&grad=null&result=gradercrv&type=rcrvintgrade&htno="], + "mba":["°ree=mba&grad=pg&etype=null&result=grade17&type=intgrade&htno=","°ree=mba&grad=pg&etype=r16&result=gradercrv&type=rcrvintgrade&htno="] } async def fetch_result(self, session, exam_code, payload): @@ -160,6 +200,14 @@ async def scrape_all_results(self, exam_code="all"): payloads = self.payloads["bpharmacy"] # Set the exam codes for bpharmacy exam_codes = self.exam_codes["bpharmacy"]["R17"] + + elif self.roll_number[5]=="E": + # Set payloads to MBA + payloads = self.payloads["mba"] + + # Determine the exam codes based on the roll number prefix + exam_codes = self.exam_codes["mba"]["R22" if self.roll_number[:2] == "22" else "R19"] + else: return self.results