728x90
반응형
크롤링 고수는 아니지만 수 백 시간 삽질 하면서 얻은 꿀팁 공유 드립니다
크롤링 시 css selector를 사용하자
xpath 등 다른거 다 필요 없습니다 css selector가 가장 잘 가져옵니다
element = driver.find_element_by_css_selector(‘#아이디 .클래스명 > div’)
마우스 이벤트가 있는 경우
onmouseover 와 같이 마우스 이벤트가 있는 경우
혹은 onclick 팝업인데 다른 곳 클릭 시 창이 닫히는 경우
- 개발자 도구 켠다
- 해당 마우스 이벤트 발생 시킨 상태에서
- 요소 선택 단축키 입력: ctrl + alt + c
- 보고싶은 html 요소 클릭
.click() 에서 상호작용이 없다는 에러가 뜰 경우
분명 코드는 맞는데 selector가 element를 찾지 못할 때
대부분 로딩 속도의 문제입니다
새 창, 새 탭을 켜거나 클릭 등을 하여 새 창이 뜰 경우 충분한 time.sleep()을 주어야 합니다
또한 다른 작업과 병행할 경우 그 작업이 추가됨으로 생기는 딜레이 또한 생각해야 합니다
!pip install time
import time
time.sleep(3) ## 3초 쉰다
또한 창을 백그라운드에서 실행함으로 조금이나마 빨라질 수 있습니다
from selenium import webdriver
# 옵션 생성
options = webdriver.ChromeOptions()
# 창 숨기는 옵션 추가
options.add_argument("headless")
driver = webdriver.Chrome(chrome_driver_dir, options=options)
# driver 종료
driver.quit()
생각나는데로 계속 추가 하겠습니다
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python) selenium 새 탭에서 크롤링 (0) | 2022.03.21 |
---|---|
Python) selenium 현재 실행중인 창에서 크롤링 (macOS) (0) | 2022.03.21 |
Python) selenium 동적 크롤링 시 click() 안될 때 (0) | 2022.03.21 |
Python) conda 가상환경 생성 및 실행 (0) | 2022.03.21 |
Python) conda install 패키지를 찾을 수 없는 경우 (0) | 2022.03.21 |
댓글