from selenium import webdriver
import chromedriver_autoinstaller
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import csv

list_result = []

# 1부터 n-1페이지까지
for page_num in range(1, 3):
   
    # 브라우저 접속
    driver = webdriver.Chrome('')

    time.sleep(1.5)

    for i in range(1, 21): # 20행까지
       
        # 행 변수 추출

        # 기업명
        c_name = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(1) > a > font')
        var1 = c_name[0].text

        # 상장일
        date = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(2)')
        var2 = date[0].text

        # 현재가
        price_now = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(3)')
        var3 = price_now[0].text

        # 공모가
        public_off = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(5)')
        var4 = public_off[0].text

        # 시초가
        price_start = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(7)')
        var5 = price_start[0].text

        # 첫날종가
        price_first_end = driver.find_elements(By.CSS_SELECTOR, f'body > table:nth-child(9) > tbody > tr > td > table:nth-child(2) > tbody > tr > td:nth-child(1) > table:nth-child(12) > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child({i}) > td:nth-child(9)')
        var6 = price_first_end[0].text

        # 하나의 행으로 저장해 result에 행을 쌓기
        list_1 = [var1, var2, var3, var4, var5, var6]
        list_result.append(list_1)

# CSV 파일에 데이터 쓰기
csv_file_path = 'IPO_yield.csv'

with open(csv_file_path, 'w', newline='', encoding='utf-8-sig') as csvfile: # utf-8-sig : 엑셀에서 한글 깨짐 방지
    csv_writer = csv.writer(csvfile)
   
    # 헤더 작성
    header = ['기업명', '상장일', '현재가', '공모가', '시초가', '첫날종가']
    csv_writer.writerow(header)

    # 데이터 작성
    for row in list_result:
        csv_writer.writerow(row)

print(f'Data saved to {csv_file_path}')