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
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.chrome.options import Options
from pykrx import stock
import pandas as pd
from pandas_datareader import data
from datetime import datetime
from datetime import timedelta

list_result = []

# 크롬브라우저 실행
driver = webdriver.Chrome('')

time.sleep(1)

# 검색어 입력
a = driver.find_element(By.CSS_SELECTOR,'#search_keyword')
a.send_keys('웰컴공모주코스닥벤처기업증권투자신탁[주식혼합-파생형] 종류 A')

time.sleep(1)

# 검색 버튼 클릭
b = driver.find_element(By.CSS_SELECTOR,'#btnSearch')
driver.execute_script('arguments[0].click();', b)

time.sleep(1)

# 펀드코드로 펀드선택 클릭 (data-fund_cd)
c = driver.find_element(By.CSS_SELECTOR,'a[data-fund_cd="K55244C54535"]')
driver.execute_script('arguments[0].click();', c)

time.sleep(1)

# 성과 버튼 클릭
d = driver.find_element(By.CSS_SELECTOR,'#tabFundMenu > ul > li:nth-child(2) > button')
driver.execute_script('arguments[0].click();', d)

time.sleep(1)

# 날짜 및 기준가 수집 (현재 기준 1년 = 25page)
for i in range(25):
   
    for row in range(1, 11):
        # 날짜
        date = driver.find_elements(By.CSS_SELECTOR,f'#tbl_rate > tbody > tr:nth-child({row}) > td.taC')
        var1 = date[0].text if date else ''

        # 기준가
        price = driver.find_elements(By.CSS_SELECTOR,f'#tbl_rate > tbody > tr:nth-child({row}) > td:nth-child(2)')
        var2 = price[0].text if price else ''
       
        list_result.append([var1, var2])
       
    # 다음 페이지 버튼 클릭
    e = driver.find_element(By.CSS_SELECTOR,'#tabPaging_info > div > tr > button.btn--paging.btn--next')
    driver.execute_script('arguments[0].click();', e)
   
    time.sleep(1)

# 코로나19 버튼, 3년 버튼 클릭
f = driver.find_element(By.CSS_SELECTOR,'#btnRatetime > button:nth-child(2) > span')
driver.execute_script('arguments[0].click();', f)

g = driver.find_element(By.CSS_SELECTOR,'#radio_rate > span:nth-child(5) > label > span')
driver.execute_script('arguments[0].click();', g)

time.sleep(1)

# 날짜 및 기준가 수집 (코로나 기준 3년 = 124page)
for i in range(124):
   
    for row in range(1, 11):
        # 날짜
        date = driver.find_elements(By.CSS_SELECTOR,f'#tbl_rate > tbody > tr:nth-child({row}) > td.taC')
        var1 = date[0].text if date else ''

        # 기준가
        price = driver.find_elements(By.CSS_SELECTOR,f'#tbl_rate > tbody > tr:nth-child({row}) > td:nth-child(2)')
        var2 = price[0].text if price else ''
       
        list_result.append([var1, var2])
       
    # 다음 페이지 버튼 클릭
    e = driver.find_element(By.CSS_SELECTOR,'#tabPaging_info > div > tr > button.btn--paging.btn--next')
    driver.execute_script('arguments[0].click();', e)
   
    time.sleep(1)

# 리스트를 데이터프레임으로 변환
df = pd.DataFrame(list_result, columns=['date', 'price'])

df.to_excel('output.xlsx', index=False)
print('done')