일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 선형대수학
- 유데미
- map
- 머신러닝
- 딥러닝
- AI
- Regression
- 42서울
- filtering
- 피플
- 회귀
- 모델
- RNN
- 파이썬
- Computer Vision
- pytorch
- 코딩애플
- 크롤링
- Flutter
- 데이터분석
- 42경산
- 선형회귀
- 지정헌혈
- CV
- 앱개발
- 플러터
- 인공지능
- 크롤러
- 자연어처리
- mnist
Archives
- Today
- Total
David의 개발 이야기!
[ iframe 개념 이해하기 ] 다음카페 자동으로 글 게시하는 프로그램 만들기! 본문
반응형
아이프레임은 HTML Inline Frame 요소이며 inline frame의 약자이다.
효과적으로 다른 HTML 페이지를 현재 페이지에 포함시키는 중첩된 브라우저로
iframe 요소를 이용하면 해당 웹 페이지 안에 어떠한 제한 없이 다른 페이지를 불러와서 삽입 할 수 있다!
그래서, 크롤링을 할때, 상당히 문제가 되는데! 간혹가다가 NO SUCH ELEMENT ERROR가 뜨면 의심해볼만 하다!
[ 크롤링시 포인트 ]
# 매번 iframe 확인해야되나...? -> No Such Element 에러시,
# 1. css 선택자 잘 썼는지 확인
# 2. time.sleep()을 길게 조정
# 3. 프레임안에 들어왔는지 확인!
# iframe 전환은 바깥에서 안으로만 가능하다! 바깥에서 안은 안됨!
iframe 안으로 들어와있으면 바깥에 있는 걸 건드리지 못한다! 빠져나오는 코드를 입력해주어야한다.
from selenium import webdriver
import time
browser = webdriver.Chrome("./chromedriver")
browser.get("https://logins.daum.net/accounts/signinform.do?url=https%3A%2F%2Fwww.daum.net%2F")
id = browser.find_element_by_css_selector("#id")
id.send_keys("*************")
pw = browser.find_element_by_css_selector("#inputPwd")
pw.send_keys("************")
browser.find_element_by_css_selector("#loginBtn").click()
time.sleep(3)
browser.get("http://cafe.daum.net/talingpython")
time.sleep(3)
# 가입인사 게시판 클릭
browser.switch_to.frame(browser.find_element_by_css_selector("#down")) # 프레임 전환 #태그명 생략해도 됨 iframe 지워도 됨
browser.find_element_by_css_selector("#fldlink_lF1R_309").click()
time.sleep(3)
# 글쓰기 버튼 클릭
browser.find_element_by_css_selector("#article-write-btn").click()
time.sleep(3)
# 제목 작성
subject = browser.find_element_by_css_selector("input.title__input")
subject.send_keys("안녕하세요!")
# 본문 작성
browser.switch_to.frame(browser.find_element_by_css_selector("#keditorContainer_ifr")) # 프레임 전환
content = browser.find_element_by_css_selector("#tinymce")
content.send_keys("반갑습니다.")
# 발행 버튼 클릭
browser.switch_to.default_content() # 제일 바깥으로 빠져나옴.
browser.switch_to.frame(browser.find_element_by_css_selector("#down")) # 프레임 전환
browser.find_element_by_css_selector("button.btn_g.full_type1").click()
time.sleep(3)
browser.close()
iframe 안에 있는 것을 크롤링하기 위해서는
switch_to.frame(browser.find_element_by_css_selector())를 이용한다!
# 가입인사 게시판 클릭
browser.switch_to.frame(browser.find_element_by_css_selector("#down")) # 프레임 전환 #태그명 생략해도 됨 iframe 지워도 됨
browser.find_element_by_css_selector("#fldlink_lF1R_309").click()
time.sleep(3)
위에서 말한 iframe은 바깥에서 안으로 라고 이야기했는데 그 뜻은 아래와 같다!
# 발행 버튼 클릭
browser.switch_to.default_content() # 제일 바깥으로 빠져나옴.
browser.switch_to.frame(browser.find_element_by_css_selector("#down")) # 프레임 전환
browser.find_element_by_css_selector("button.btn_g.full_type1").click()
time.sleep(3)
browser.close()
browser.switch_to.default_content() 를 통해 밖으로 빠져나온후 다시 들어가야한다!
반응형
'크롤링 공부' 카테고리의 다른 글
웹 크롤러 이해하기[2] - 무한 스크롤 해결하기! (0) | 2023.05.02 |
---|---|
웹 크롤러 개념 익히기[1] - 네이버 주식 현재가 크롤링 예제 (0) | 2023.05.02 |
인스타그램 자동 좋아요 누르기 프로그램 만들기! (1) | 2021.12.16 |
네이버 클로바 음성인식 API 활용 실습! (0) | 2021.12.15 |
json 에서 dictionary로 변환하는 방법! (0) | 2021.12.15 |
Comments