파이썬으로 크롤링을 구현한다면 가장 많이 사용하는 selenium. 

Selenium 설치부터 실제 사용까지의 과정을 설명하도록 하겠다.

 

1. pip install selenium

 

파이썬이 미리 설치되어있다면 이 명령어 하나로 충분하다.

 

2. Chrome webdriver 다운로드

 

2-1. 크롬 버전 확인

 

 

크롬 옆에 점 3개를 누르고 도움말에서 Chrome 정보를 눌러 자신의 Chrome 버전을 확인한다.

 

2-2. 크롬 드라이버 설치

 

아래 링크를 클릭하여 자신의 크롬 버전과 맞는 크롬 드라이버를 설치한다.

https://chromedriver.chromium.org/downloads

 

ChromeDriver - WebDriver for Chrome - Downloads

Current Releases If you are using Chrome version 104, please download ChromeDriver 104.0.5112.29 If you are using Chrome version 103, please download ChromeDriver 103.0.5060.134 If you are using Chrome version 102, please download ChromeDriver 102.0.5005.6

chromedriver.chromium.org

그럼 이제 selenium을 사용할 준비가 완료되었다!

 

3. import 문으로 selenium 불러오기

 

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

 

selenium에서 webdriver를 import 해온다.

그 다음 이를 불러온다.

webdriver.exe실행시키는 코드의 폴더와 같은 폴더 안에 넣어야 이 코드가 실행된다.

아니면 webdriver.exe의 경로를 webdriver.Chrome()의 괄호 안에 넣어주어야 한다.

 

 4. url  실행하기

 

url = '크롤링하고자 하는 사이트 url'
driver.get(url)

 

driver.get(url) 명령어로 url을 실행할 수 있다.

 

5. 페이지의 element에 접근하기

 

driver.find_element(By.XPATH,'XPATH 경로')
driver.find_element(By.CSS_SELECTOR,'SELECTOR 경로')
driver.find_element(By.CLASS_NAME,'CLASS 명')

 

driver.find_element로 해당 페이지의 단일 요소에 접근할 수 있다. 

개발자도구를 켜고(F12) 크롤링하고자 하는 요소를 선택한다. 그 다음 오른쪽 마우스를 눌러서 

 

 

XPATH, SELECTOR를 선택하여 그 요소의 경로를 확인할 수 있다.

 

driver.find_elements(By.CLASS_NAME,'')

 

find_elements를 사용하면 그 class_name을 가지는 여러 개의 요소를 리스트 형태로 반환한다.

 

6. 그 외의 다양한 명령어

 

driver.back()

 

페이지 뒤로 가기

 

star = driver.find_element(By.XPATH,'XPATH 경로')
s = star.get_attribute("class");

 

get_attribute를 이용하면 그 요소의 class 명, id 명을 가져올 수 있다.

 

star = driver.find_element(By.XPATH,'XPATH 경로')
star.click()

 

그 요소를 클릭한다.

 

url = driver.current_url

 

현재 url을 가져온다.

 

import time
time.sleep(3)

 

3초를 기다린다.

크롤링 시 페이지 로딩이 되지 않았는데 그 요소를 찾으려고 할 경우 에러가 나기 때문에

time.sleep()으로 잠시 기다리는 시간을 주는 것이 좋다.

 

 

+) 추가

크롤링 시에 에러가 많이 발생할 때가 있다.

그 에러가 발생하면 코드가 실행을 멈추기 때문에 이를 방지하기 위해

try, except문을 사용하여 예외처리를 해주어야 한다.