IT/Python

[Python - 크롤링] 여러 페이지 관리하기(iframe)

멋진 선배 2025. 5. 5. 21:43
반응형

페이지 안에 다른 페이지가 있는 경우(iframe  제어 방법)

반응형

메인페이지 안에 서브페이지가 있는 경우 웹 드라이버는 안쪽에 있는 서브페이지를 제어할 수 없습니다. 웹 드라이버는 한번에 하나의 페이지만 제어할 수 있기 때문인데요.

 

이러한 경우, 서브 페이지를 바라볼 수 있도록 드라이버를 전환시켜 준 다음에 서브페이지를 제어해야 합니다. 

 

드라이버 전환 방법

반응형

1.iframe 태그를 찾아 줍니다. 

  • 본문태그의 상위태그를 찾아서 올라가다 보면, iframe 태그를 발견할 수 있습니다. 
  • iframe은 HTML에서 한 웹페이지 안에 다른 웹페이지를 포함시킬때 사용하는 태그 입니다. iframe 태그가 자주 사용되는 페이지 예시를 몇가지 살펴보겠습니다.

네이버 블로그 또는 카페 : 사용자들이 외부 콘텐츠를 포스트에 포함시킬때  iframe을 사용할 수 있습니다. 예를 들어 유튜브 동영상이나 구글 맵스지도를 포함시키는 경우가 있습니다. 

 

지도 서비스 사이즈(예 : 네이버지도, 다음지도) :업체나 장소를 소개하는 웹사이트에서 위치를 표시하기 위해 iframe 을 사용하여 지도 서비스를 내장하는 경우가 많습니다. 

 

온라인 광고 : 다양한 광고 회사에서 iframe을 사용하여 웹사이트에 광고를 표시합니다. 대형 포털 사이트나 뉴스 사이트에서 이런 형태를 자주 볼 수 있습니다. 

 

2.iframe 태그 선택자를 만들고, 드라이버로 찾아 줍니다. 

iframe = drive.find_element(By.CSS_SELECTOR, "iframe 태그 선택자")
  • iframe 태그 선택자 : #content > div.contents_area > div > div.editor_area > div > div.editor_body > iframe

3.드라이버를 전환시켜 줍니다. 

driver.switch_to.frame(iframe)
  • 드라이버가 서브페이지를 바라보게 만듭니다.
  • 드라이버 전환이 정상적으로 되면, 서브페이지의 태그를 찾고 제어할 수 있게 됩니다.

4.원래 페이지로 돌아오려면 다시 드라이버를 전환 시켜 줍니다. 

driver.switch_to.default_content()
  • 드라이버가 메인 페이지를 바라보게 만듭니다. 
  • 드라이버 전환이 정상적으로 되면, 메인페이지의 태그를 찾고 제어할 수 있게 됩니다.

새로운 창 제어 방법

반응형

웹 사이트 자동화 프로그램을 제작하다보면 새로운 창을 제어할 일이 생길 수 있는데요. 예시까지 책에서 설명하기에는 과정이 다소 복잡해서, 핵심적으로 사용되는 명령어만 정리해 드리겠습니다. 

1.현재 드라이버가 가지고 있는 창 목록

driver.window_handles
  • 현재 드라이버에 열려 있는 창 목록을 리스트형태로 반환한다.

2.새로운 창으로 전환하기

driver.switch_to.window(driver.window_handles[인덱스(예:1)])
  • 드라이버가 해당 창을 바라볼 수 있도록 전환시켜 줍니다. 
반응형