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()