coding
Selenium을 이용한 자동 크롤링
codlingual
2021. 9. 10. 22:38
반응형
우선 여기서 ChromeDriver를 설치한다. 각자 크롬 버전에 따라 맞는 걸 선택해야 하는데, 크롬 설정 > Chrome 정보에 들어가서 각자 크롬 버전을 확인할 수 있다.
https://chromedriver.chromium.org/downloads
기본 코드는 다음과 같다.
from selenium import webdriver
# 드라이버 불러오기
# 각자 chromedriver.exe를 다운받은 path
driver = webdriver.Chrome('chromedriver.exe')
# 크롤링 원하는 url
url = "https://..."
driver.get(url)
# css로 element 찾기
elems = driver.find_elements_by_css_selector(css)
# 찾은 element의 href 추출
urls += [elem.get_attribute('href') for elem in elems]
# xpath로 element 찾기
# 클릭 가능한 element는 클릭도 가능!
driver.find_element_by_xpath(xpath).click()
xpath는 원하는 element 우클릭 > 검사 > 파랗게 하이라이트된 부분 우클릭 > Copy > Copy Xpath 누르면 알 수 있다.
클릭도 가능해서 계속 Next 버튼을 누르면서 크롤링하게 시킬 수도 있다.
간혹 ElementClickInterceptedException가 발생하기도 하는데, 버튼 클릭할 위치에 팝업창 같은게 떠서 그렇다.
그러면 팝업창의 닫기 버튼의 xpath를 또 확인해서, 그 닫기 버튼의 xpath가 현재 있는 경우, 그걸 눌러주는 식으로 코드를 짜주면 된다.
try:
driver.find_element_by_xpath(xpath).click()
except NoSuchElementException:
print("Keep Going~")
반응형