파이썬 Python/Selenium

M1 맥에서 셀레니움 설치부터 실행까지 한판 정리

leexx 2023. 8. 14. 00:05

엿같은 티스토리... 오류 쥰내나죠 씁

 

1. Python 설치

  • 맥은 기본적으로 2.? 버전의 python 이 설치되어있으나, 이것저것 하려면 3.x 버전의 설치가 필요하다.
  • https://www.python.org/downloads/macos/ 여기에서 원하는 버전을 선택 후, 다운받으면 된다.

1.1. python 입력 시 python3 가리키도록 함

ternimal 에서 python 을 입력하면 2.x 버전이 골라진다. python 입력 시 python3 을 가리키도록 변경하려면 .zshrc 파일에 alias 를 추가해주면 된다.

 

which python3
# /usr/bin/python3

echo "alias python=경로" >> ~/.zshrc
# which python3 로 나온 경로 사용

 

2. Anaconda 설치 (Mac OS)

 

2.1. 자주 쓸 명령어

# 현재 활성화되어있는 가상환경 사용 종료 
conda deactivate

# 가상환경 사용
conda activate

# 가상환경 리스트
conda env list

# 가상환경 만들기 (버전은 알아서)
conda create -n myEnvName python=3.9

 

2.2. 가상환경 만들고 설치하기

# 만들기
conda create -n venv2 python=3.9

# 활성화 (사용)
conda activate venv2

# 설치
## 설치 후 에러 발생 시 아래 참고 
pip3 install selenium

 

2.2.1. 설치 후 에러 발생

  • 설치를 했음에도 selenium 을 못찾는 경우
    • sudo python3 -m pip install selenium
  • 특정 버전의 selenium 을 설치하고 싶은 경우
    • sudo pip3 install selenium==4.9.0

 

3. Chrome Driver 설치하기

크롬 드라이버가 있어야 한다. 크롬 드라이버는 크롬 버전과 동일한 버전을 사용해야 한다.

 

3.1. 크롬 버전 확인하기 

 

1. 컴퓨터에서 Chrome을 엽니다.
2. 오른쪽 상단에서 더보기 를 클릭합니다.
3. 도움말 Chrome 정보를 클릭합니다.

https://support.google.com/chrome/answer/95414?hl=ko&co=GENIE.Platform%3DDesktop

 

3.2. 설치하기

https://chromedriver.chromium.org/downloads 여기서 맞는 버전을 선택하면 된다.

다운로드 후 압축을 풀면 이렇게 파일 두 개 가 나온다. 여기서 chromedriver 실행 파일은 셀레니움으로 크롬을 띄울때 필요하다.

 

3.2.1. Chrome 115 이상 버전에서 크롬드라이버 설치하기

 

빨간 밑줄로 되어있는 링크를 클릭하면 이렇게 들어가진다. 여기서 동일한 버전을 선택해서 다운받으면 위 처럼 chromedriver 파일을 받을 수 있다.

텍스트로 되어있는데, 블록을 잡은 후 오른쪽버튼을 클릭해서 [링크로 이동] 을 클릭하면 바로 다운이 가능하다. 

 

4. 코드 작성하고 실행하기

# selenium의 webdriver를 사용하기 위한 import
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 페이지 로딩을 기다리는데에 사용할 time 모듈 import
import time
import os

chromedriver_path = os.environ.get('CHROMEDRIVER_PATH', '/Users/user/Desktop/my/myPython/chromedriver')
service = Service(chromedriver_path)
driver = webdriver.Chrome(service=service)

# # 크롬 드라이버에 url 주소 넣고 실행
driver.get('https://www.google.co.kr/')
#
# # 페이지가 완전히 로딩되도록 3초동안 기다림
time.sleep(3)


def main():
    print("Hello world")

if __name__ == '__main__':
    main()

 

코드는 https://wikidocs.net/137914 를 참고하였으며, driver = webdriver.Chrome('경로') 부분은 deprecated 되고 Service 객체를 사용하는 것으로 바뀌어 코드를 수정하였습니다.

 

4.1. chromedriver path export 하기

export CHROMEDRIVER_PATH=/Users/user/xx/yy/chromedriver

요 chromedriver path 가 아까 설치한 chromedriver 의 위치이다. 절대경로로 하는게 좋다.

 

4.2. 실행하기

쨔쟌

 

참고자료

https://wikidocs.net/137914

https://github.com/appium/python-client/issues/863