본문 바로가기

BLOG/웹크롤링

[웹크롤링] 탭(tab) 변경 방법

 

여러 탭을 만들어서 동시에 크롤링을 수행하도록 할 수 있는데요, 만약 탭을 변경해야 한다면 코드를 어떻게 작성해야 할까요? 바로, swith_to.window() 라는 함수를 이용하면 되는데요, 아래 코드를 보면서 살펴보도록 하겠습니다.

 

 

swith_to.window() 함수를 사용하기 앞서, 웹 드라이버 설정을 해주어야 하는데요,

아래와 같이 설정을 해주도록 하겠습니다.

 

path = "c:/temp/chromedriver_240/chromedriver.exe"   ###자신의 chomedriver의 경로 위치
driver = webdriver.Chrome(path)

 

웹드라이버를 'driver' 라는 변수에 저장해주었는데요, 각자 코드에 맞게 입력하시면 됩니다.



한편, swith_to.window() 함수는 driver.switch_to.window("tab이름") 처럼 입력해서 사용하면 되는데요, 

처음에 페이지를 열 때, tab이름을 지정해주어야 합니다.

 

예를 들어, 네이버 홈페이지를 열고, 해당 탭 이름을 '네이버'로 설정하려면 아래와 같이 코드를 입력하면 됩니다.

 

driver.execute_script("window.open('https://www.naver.com/', '네이버' );")

 

그러면, 탭 변경 코드를 다음과 같이 사용할 수 있게 됩니다.

 

driver.switch_to.window("네이버")

 

 

 

한번 실습으로, 구글 페이지를 열고 네이버 페이지를 연 뒤, 다시 구글 탭을 선택하는 코드를 작성해보겠습니다.

 

from bs4 import BeautifulSoup     
from selenium import webdriver

path = "c:/temp/chromedriver_240/chromedriver.exe"   ###자신의 chomedriver의 경로 위치
driver = webdriver.Chrome(path)

driver.execute_script("window.open('https://www.google.com/', '구글' );")
driver.execute_script("window.open('https://www.naver.com/', '네이버' );")
driver.switch_to.window("구글")

 

위와 같이 입력한 뒤, 실행해보면 탭이 변경되는 것을 확인하실 수 있답니다.