Selenium을 이용해 크롤링 하다보면 iframe 안의 내용은 가져오지 못하는 경우가 생긴다.
그럴 때에는 iframe을 바꿔 그 안에서 원하는 정보를 찾을 수 있다.
from selenium import webdriver
# 웹 드라이버 켜기
driver = webdriver.Chrome(executable_path='드라이버 위치')
# 원하는 url로 이동하기
url = "원하는 url"
driver.get(url)
# iframe 안으로 이동하기
## 몇 번째 iframe인지 확인 후, 그에 맞게 넣어주셔야해요. 저는 첫 번째 iframe에 들어가고 싶어 0을 넣어줬습니다!
pop_up = driver.find_elements_by_tag_name('iframe')[0]
driver.switch_to.frame(pop_up)
# 만약 iframe이 많으시다면,
iframes = driver.find_elements_by_tag_name('iframe')
# iframe의 name을 출력한 후,
for iframe in iframes:
print(iframe.get_attribute('name')
# 아래 명령어로 iframe을 전환할 수 있습니다.
driver.switch_to.frame('프레임 이름')
# 만약 default html로 넘어가고 싶으시다면,
driver.switch_to.default_content()
# 모든 크롤링이 완료되었다면 브라우저 종료
driver.quit()
'Programming > Python & Django' 카테고리의 다른 글
[Django] shell에서 pandas를 이용해 중복 데이터 drop하기 (0) | 2020.08.03 |
---|---|
한 대의 맥에서 여러 개의 github 계정 사용하기 (0) | 2020.02.18 |
[Django] DB 옮길 때 shell 사용해 옮기는 꼼수 (0) | 2020.02.14 |
[Django] static debug 문제 (2) | 2020.02.13 |
댓글