i'm trying to webscrape to excel, but i can't get the list of courses to actually align properly. it is just one long string on one row. i would like each row for every course to be under the proper category (see image for reference).
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import re
import csv
driver = webdriver.Chrome("drivers/chromedriver")
# driver.get("https://web3.ncaa.org/hsportal/exec/hsAction")
driver.get("https://web3.ncaa.org/hsportal/exec/hsAction")
Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "state")))).select_by_visible_text("New Hampshire")
driver.find_element_by_xpath("//input[@id='city']").send_keys("Moultonborough")
driver.find_element_by_xpath("//input[@id='name']").send_keys("Moultonborough Academy")
driver.find_element_by_xpath("//input[@value='Search']").click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='hsCode']"))).click()
x = driver.find_elements_by_xpath("(//tr[th[@class='header']])[1]/th")
head = [re.sub('\s+',' ',el.text) for el in x]
y = = ([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "table#approvedCourseTable_1 td")))])
with open('out.csv', 'w', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(head)
writer.writerow(courses)

