Skip to content

Instantly share code, notes, and snippets.

@shivankgtm
Created January 17, 2020 18:26
Show Gist options
  • Save shivankgtm/b4e25e1d589a9da5894b21aea013883a to your computer and use it in GitHub Desktop.
Save shivankgtm/b4e25e1d589a9da5894b21aea013883a to your computer and use it in GitHub Desktop.
import time
from selenium import webdriver
import pandas as pd
#from webdriver_manager.chrome import ChromeDriverManager # Only required in Linux
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
data = pd.read_excel(r'data.xlsx')
#data.xlsx file name. replace with yours file name/
for i in range(len(data)):
#driver = webdriver.Chrome(ChromeDriverManager().install()) # Linux
driver = webdriver.Chrome(executable_path = '') # Windows
driver.get('http://ntaresults.nic.in/resultservices/JEEMain-January-2020-auth')
# Registration Number being fetched from from.xlsx.
# Same with DOB
time.sleep(2)
reg_num = data['JEE(Jan2020) Application Num'][i]
driver.find_element_by_name('ctl00$ContentPlaceHolder1$txtRegNo').send_keys(str(reg_num))
DOB = str(data['DOB(DD/MM/YYYY)'][i])
DOB = DOB[:10].split('-')
print(DOB)
# DOB - Date
date = driver.find_element_by_name('ctl00$ContentPlaceHolder1$ddlday')
date.send_keys(DOB[2])
# DOB-Month
db = {1: 'January (01)', 2:'February (02)', 3:'March (03)', 4:'April (04)', 5:'May (05)', 6:'June (06)', 7:'July (07)', 8:'August (08)', 9:'September (09)', 10:'October (10)', 11:'November (11)', 12:'December (12)'}
month = driver.find_element_by_name('ctl00$ContentPlaceHolder1$ddlmonth')
month.send_keys(db[(int(DOB[1]))])
# DOB-Year
year = driver.find_element_by_name('ctl00$ContentPlaceHolder1$ddlyear')
year.send_keys(DOB[0])
#CAPTCHA
#driver.find_element_by_name('ctl00$ContentPlaceHolder1$Secpin').send_keys('T6GH')
time.sleep(8)
driver.find_element_by_name('ctl00$ContentPlaceHolder1$Submit1').click()
time.sleep(5)
#ctl00_ContentPlaceHolder1_lblName
AID = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblAppno').text
Name = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblName').text
f_name = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblFname').text
cat = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblCategory').text
gender = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblGender').text
nation = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblNationality').text
phy = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblPaper1Physics').text
chem = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblPaper1Chemistry').text
mat = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lblPaper1Math').text
total = driver.find_element_by_name('ctl00_ContentPlaceHolder1_lbltotalPaper1').text
print(total)
# try:
# # line waiting for Admit card link to be find.
# # If pdf link does not find for 15 seconds it will be TimeOut.
# myElem = WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.ID, 'ctl00_LoginContent_lnkAdmitCard')))
# z = driver.find_elements_by_id('ctl00_LoginContent_lnkAdmitCard')
# z[0].click()
# print(reg_num)
# time.sleep(2)
# driver.quit()
# # TimeOut can be of two reasons.
# # 1. Either the page is still loading.
# # 2. or Invalid registration number or captcha.
# except TimeoutException:
# try:
#
# # Following line will confirm if Reg_Num/DOB is invalid.
# myElem = WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.ID, 'ctl00_ContentPlaceHolder1_lblerror1')))
# print('Reg_Num or DOB is wrong', reg_num)
# # invalid_regis.txt is a file which will tackle invalid reg_number.
# invalid_reg_dob = open('invalid_regis.txt', 'a')
# invalid_reg_dob.write(str(reg_num)+'\n')
# invalid_reg_dob.close()
# driver.quit()
#
# except TimeoutException:
# print('Taking two long')
# driver.quit()
#
# #except:
# # print('Taking too long')
# # driver.quit()
#
driver.quit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment