플그래밍/파이써언

[파이썬] Selenium으로 Javascript 코드 실행하기

훗티v 2023. 4. 28. 19:59
728x90
반응형

파이썬 Selenium사용 시 Javascript코드 실행하는 방법입니다.

 

CompanyGuide에서 제공하는 재무제표는 초기 로드시 아래와 같이 세부항목이 숨겨진 상태로 표시됩니다.

 

+ 아이콘 클릭 시 세부사항이 표시되는 방식입니다.

 

Selenium으로 Javascript 코드를 실행시켜 세부사항을 표시해보도록 하겠습니다.

Javascript 코드를 실행시키는 코드는 다음과 같습니다.

driver.execute_script("실행시키고자하는 자바스크립트 코드")

 

전체코드는 다음과 같습니다.

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome import service
from selenium.webdriver.common.by import By
from webdriver_manager.opera import OperaDriverManager
from selenium.common.exceptions import NoSuchElementException
from time import sleep

webdriver_service = service.Service(OperaDriverManager().install())
webdriver_service.start()

options = webdriver.ChromeOptions()
options.add_argument('--headless') # 헤드레스
options.add_experimental_option('w3c', True)
# options.add_argument('--window-size=1920,1080') # 창 크기

driver = webdriver.Remote(webdriver_service.service_url, options=options)
driver.maximize_window()
driver.implicitly_wait(2)

driver.get(url=f'https://comp.fnguide.com/SVO2/ASP/SVD_Finance.asp?pGB=1&gicode=A005930&cID=&MenuYn=Y&ReportGB=&NewMenuID=103&stkGb=701')
driver.execute_script("javascript:foldOpen('grid1_4');")
hiddentrs = driver.find_elements(By.CLASS_NAME, "c_grid1_4.rwf.acd_dep2_sub")

for tr in hiddentrs:
    print(tr.text)

 

스크립트를 실행시키기전에는 빈 결과값을 돌려받지만

스크립트 실행 후 해당 부분을 수집하면 아래와 같은 결과값을 돌려받을 수 있습니다.

 

이상, Selenium에서 Javascript 코드를 실행하는 방법이었습니다.

 

 

 

 

 

 

반응형