2021. 9. 10. 22:38ㆍcoding
우선 여기서 ChromeDriver를 설치한다. 각자 크롬 버전에 따라 맞는 걸 선택해야 하는데, 크롬 설정 > Chrome 정보에 들어가서 각자 크롬 버전을 확인할 수 있다.
https://chromedriver.chromium.org/downloads
ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 94, please download ChromeDriver 94.0.4606.41 If you are using Chrome version 93, please download ChromeDriver 93.0.4577.63 If you are using Chrome version 92, please download ChromeDriver 92.0.4515.107 For
chromedriver.chromium.org
기본 코드는 다음과 같다.
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~")
'coding' 카테고리의 다른 글
Hacktoberfest 2021 핵토버 페스트 2021 참여하기 (0) | 2021.10.19 |
---|---|
드디어 이해한 Transformer Positional Encoding/Embedding (2) | 2021.10.07 |
expo로 만든 어플 애플 앱스토어로 출시하기 (2) | 2021.08.23 |
Git Personal Access Tokens 설정하기 (0) | 2021.08.14 |
React Native 어플 출시했다다다 (0) | 2021.07.25 |