본문 바로가기
Python Crawing

Selenium - iframe

by 앵남(Andy) 2021. 10. 12.

글 개요

이번 포스팅에서는 Selenium의 iframe에 대해서 설명해보려고 합니다.

 

글 본문

iframe

iframe이란, inline frame의 약자입니다. iframe을 이용하면, 해당 웹 페이지 안에 어떠한 제한 없이 또 다른 하나의 웹 페이지를 삽입할 수 있습니다. 가끔 Selenium으로 크롤링을 하다보면, 어떠한 경우는 데이터가 잘 가져와지는데 어떤 경우는 아예안가져와 지는 경우가 있습니다. 그럴때 iframe을 의심해봐야합니다. 혹시, 내가 iframe 안에 있는 태그를 가져오려고 시도하고 있는건 아닌지 찾아보셔야 합니다. 

 

일단, 저는 네이버 금융에서 매매기준율이라는 데이터를 가지고 오고 싶었는데 태그를 정확하게 가져왔는데도 불구하고 빈 데이터를 반환했습니다. 보아하니, iframe안에 있는 태그였습니다. 

iframe

iframe을 쉽게 말하자면, html 코드안에 또 다른 html코드를 가지고 있는게 iframe입니다. 그래서 저부분을 크롤링을 해주기 위해서는 저 iframe에 접근을 해야합니다. 접근하는 방법은 저 해당하는 iframe 태그에 접근합니다. 

다행이도 저 iframe은 id값이 존재해서 빠르게 접근할 수 있을거 같습니다.


# 태그에 접근 후 iframe 태그로 이동합니다.
iframe = selenium.find_element_by_css_selector('#frame_ex1')

#태그 이동
driver.switch_to_frame(iframe)

저는 이제 iframe 내부에 있는 td 태그 class는 sale인 태그에 접근할 수 있습니다.



driver.find_element_by_css_selector('td.sale').text

#결과
1,196.00

 

댓글