Development/Environment

Amazon Linux 서버에서 Selenium 사용하기

고고마코드 2023. 6. 22. 10:14
반응형

AWS Amazon Linux 2 환경에서 google-chrome-stable 패키지로 설치하려 했으나, “gpg-key” 관련 오류가 지속적으로 발생하고, 이를 무시하려고 해도 “Segmentation Fault” 오류가 발생

해당 오류를 해결하려고 많은 시간이 소요되어 기록함.


서버 환경

NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"

명령어 $ cat os-release 로 확인할 수 있다.


chrome 패키지 설치

설치해야하는 패키지는 3개이다.
chromium-common, chromium, chromedriver

우선 저장소에서 관련 패키지를 찾는다.
$ yum list | grep chrom
Untitled
3개의 패키지 모두 확인했다면 아래의 “저장소에 패키지가 있는 경우”를 참고하고, 만약 패키지가 없다면 아래의 “저장소에 패키지가 없는 경우”를 참고한다.

저장소에 패키지가 있는 경우

  1. $ sudo yum install chromium-common
  2. $ sudo yum install chromium
  3. $ sudo yum install chromedriver

설치 후 $ chromium-browser --version, $ chromedriver --version 으로 설치가 잘 되었는지 확인한다.

저장소에 패키지가 없는 경우

RPM resource chromium-common (rpmfind.net)

  1. 링크로 접속해서 3개의 패키지를 각각 검색해서 el7.x86_64.rpm 으로 끝나는 파일을 다운로드 해야 한다.
  2. 버전은 원하는 버전을 다운로드 해도 되지만 chromium-common, chromium, chromedriver 3개의 버전을 모두 동일하게 한다.
  3. 패키지 다운로드 후 FTP로 원하는 경로 아래에 복사한다.
  4. 버전은 114.0.5735.106-1.el7.x86_64 라고 가정하고, 해당 경로로 이동 후 아래처럼 명령어 실행한다.
    $ sudo yum install ./chromium-common-114.0.5735.106-1.el7.x86_64
    $ sudo yum install ./chromium-114.0.5735.106-1.el7.x86_64
    $ sudo yum install ./chromedriver-114.0.5735.106-1.el7.x86_64

설치 후 $ chromium-browser --version, $ chromedriver --version 으로 설치가 잘 되었는지 확인한다.


Python 패키지 설치

가상환경

패키지를 설치하기 전에 가상환경을 사용하는 것이 좋다.

필수는 아니니 참고할 것

$ python3 -m venv ~/myenv
$ source ~/myenv/bin/activate

가상환경 해제하는 방법 : deactivate

패키지 설치

  • 가상환경

$ pip install selenium

  • 일반환경

$ pip3 install selenium


Python 소스

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(options=options)

driver.get('https://www.naver.com')
time.sleep(10)

실행했을 때 정상적으로 네이버가 호출되면 성공


한글 폰트 설치

만약 한글이 깨진다면 서버에 한글 폰트가 없어서 깨지는 것이니 폰트 설치를 해주어야 한다.

  • 폰트 다운로드

$ wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip

  • 압축 해제

$ unzip NanumFont_TTF_ALL.zip -d NanumFont

  • 폰트 폴더로 이동

$ mv NanumFont /usr/share/fonts/

  • 폰트 캐쉬 초기화

$ fc-cache -r

이후 다시 시도하면 한글도 정상적으로 보인다.


참고자료

🔥 [python, selenium, centos] 캡쳐 한글깨짐 처리

반응형