본문 바로가기
728x90

프로그래밍 언어/Python10

Python) 셀레니움 동적 크롤링 꿀팁 크롤링 고수는 아니지만 수 백 시간 삽질 하면서 얻은 꿀팁 공유 드립니다 크롤링 시 css selector를 사용하자 xpath 등 다른거 다 필요 없습니다 css selector가 가장 잘 가져옵니다 element = driver.find_element_by_css_selector(‘#아이디 .클래스명 > div’) 마우스 이벤트가 있는 경우 onmouseover 와 같이 마우스 이벤트가 있는 경우 혹은 onclick 팝업인데 다른 곳 클릭 시 창이 닫히는 경우 개발자 도구 켠다 해당 마우스 이벤트 발생 시킨 상태에서 요소 선택 단축키 입력: ctrl + alt + c 보고싶은 html 요소 클릭 .click() 에서 상호작용이 없다는 에러가 뜰 경우 여기로 분명 코드는 맞는데 selector가 ele.. 2022. 3. 21.
Python) selenium 새 탭에서 크롤링 from selenium import webdriver from selenium.webdriver.chrome.options import Options import time chrome_driver = '크롬 드라이버 위치' driver = webdriver.Chrome(chrome_driver) driver.execute_script('window.open("https://urclass.codestates.com/mypage");') # 새 탭으로 열기 time.sleep(1) # 1초 기다리기 driver.switch_to.window(driver.window_handles[-1]) # 새 탭으로 이동 time.sleep(1) 2022. 3. 21.
Python) selenium 현재 실행중인 창에서 크롤링 (macOS) macOS 기준 실행중인 창에서 크롤링을 하기 위해서는 크롬을 디버깅 모드로 실행해야 한다 터미널에서 아래 코드에서 사용자 이름을 변경 후 실행 (크롬이 설치되어있어야 함) /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="/Users//Applications/Google Chrome.app/" 위 코드가 실행되는 터미널을 켜둔 채로 크롤링을 하면 된다 (크롬 드라이버가 있어야함) from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = .. 2022. 3. 21.
Python) selenium 동적 크롤링 시 click() 안될 때 element.click() 시 엘리먼트의 상호작용이 없다는 에러가 뜸 driver.find_element_by_css_selector('.btn').click() ## ElementNotInteractableException: Message: element not interactable Keys 사용 from selenium.webdriver.common.keys import Keys driver.find_element_by_css_selector('.btn').send_keys(Keys.ENTER)javascript 코드 사용 btn = driver.find_element_by_css_selector('.btn') driver.execute_script("a.. 2022. 3. 21.
728x90