DevKim

[Selenium] 창전환이 발생할 때 -FuGuide 가 제공하는 기업 정보 스크래핑 본문

데이터 수집 [ Web crawling ]

[Selenium] 창전환이 발생할 때 -FuGuide 가 제공하는 기업 정보 스크래핑

on_doing 2020. 9. 7. 21:47
728x90

url : http://comp.fnguide.com/

 

삼성전자(A005930) | Snapshot | 기업정보 | Company Guide

삼성전자 005930 | 홈페이지 홈페이지http://www.samsung.com/sec 전화번호 전화번호031-200-1114 | IR 담당자 02)2255-9000 주소 주소경기도 수원시 영통구 삼성로 129 (매탄동) KSE  코스피 전기,

comp.fnguide.com

빨간 네모박스 부분을 크롤링을 진행한다.

* FuGuide는 다른 페이지로 이동할 때 새창(팝업창)에 값이 출력됩니다.

이때 팝업된 창의 정보를 가져오기 위해선 별도의 명령을 사용해야합니다!

 

 

from selenium import webdriver

driver=webdriver.Chrome('chromedriver.exe')

driver.get('http://comp.fnguide.com/SVO2/ASP/SVD_main.asp?pGB=1&gicode=A005930&cID=&MenuYn=Y&ReportGB=&NewMenuID=11&stkGb=&strResearchYN=')

page=driver.find_element_by_css_selector('#topChart01')
page.click()

print(driver.window_handles) # 윈도우를 구분하기위해 여기에 리스트 형태로 윈도우 순서대로 저장되어있음

위 코드 실행 시 결과값

위 코드 실행시 driver.window_handles 코드를 출력해보면 위와같이 두개의 값이 출력됩니다.

이것은 selenium을 통해 현재 열려있는 창을 구분하기위해 리스트 형태로 차례로 담겨있는 것을 알 수 있습니다.

참고로 0번째, 1번째... 이런식의 순서로 저장됩니다.

 

driver.switch_to.window(driver.window_handles[1]) # 윈도우 창 이동
data=driver.find_elements_by_css_selector('#chartDataGrid > table > tbody > tr > td:nth-child(2)')

for data in data:
    print(data.text)
    
    
driver.switch_to.window(driver.window_handles[0]) #메인 윈도우로 돌아오기

driver.quit()
728x90
Comments