import re
import xlsxwriter
from selenium import webdriver
# Credenciales para inicio de sesión
username = '*********'
password = '************'
# Locacalización del webdriver
driver = webdriver.Firefox(executable_path=r'C:\WebDrivers\geckodriver.exe')
# Abrir página de inicio de sesión
driver.get('https://plataforma.educaline.com/login/canvas')
# Ingresar de credenciales para inicio de sesión
username_textbox = driver.find_element_by_id('pseudonym_session_unique_id')
username_textbox.send_keys(username)
password_textbox = driver.find_element_by_id('pseudonym_session_password')
password_textbox.send_keys(password)
# Click al botón de "Iniciar sesión"
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div/div/div[1]/div/div/div/div/div/div[2]/form['
'1]/div[3]/div[2]/button').click()
# Navegar a la página de notas de química
driver.get('https://plataforma.educaline.com/courses/4138/grades')
assignments = driver.find_elements_by_class_name('student_assignment.assignment_graded.editable')
assignments_quantity = len(assignments)
# Datos de las asignaciones
assignment_names = driver.find_elements_by_class_name('title')
due_dates = driver.find_elements_by_class_name('due')
grades = driver.find_elements_by_class_name('score_holder')
max_grades = driver.find_elements_by_class_name('possible.points_possible')
grade_pattern = re.compile(r'\b\d{2}\s\(\d\.\d\)*')
workbook = xlsxwriter.Workbook('NotasDeQuímica.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write('A1', 'Asignación')
worksheet.write('B1', 'Fecha límite')
worksheet.write('C1', 'Puntaje')
worksheet.write('D1', 'De')
for i in range(assignments_quantity):
worksheet.write(i + 1, 0, assignment_names[i].text)
worksheet.write(i + 1, 1, due_dates[i].text)
worksheet.write(i + 1, 2, str(grade_pattern.findall(grades[i].text)))
worksheet.write(i + 1, 3, max_grades[i].text)
workbook.close()
driver.close()
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}