• 목록
  • 아래로
  • 위로

저는 우분투와 파이썬에 대해 잘 모르기 때문에 이 글에 부족한 부분이 많을 것으로 생각됩니다.


부정확한 부분이 있으면 댓글로 말씀해주시면 감사하겠습니다.



PhantomJS가 다른 Headless browser와 비교할 때 설치 및 Webdriver API 사용법이 가장 간단하지만,


현재는 deprecated된 상태이고 실행은 되지만 크롬이나 파폭을 이용하라고 경고가 뜹니다.


또한 크롬이나 파폭에서 보이는 화면과 다르게 보이는 경우가 적지 않게 있어서 


일일이 스크린샷을 찍으며 확인을 해야 되고,


가장 큰 문제점은 자바스크립트와 관련하여 충돌이 발생하는 경우가 있습니다.



한편 Chromedriver는 윈도우에서는 chromedriver.exe만 있으면 잘 돌아가지만


현재 우분투에서 크로미움과 관련하여 여러 에러가 보고되고 있습니다.


제가 아직 이에 대한 확실한 솔루션을 제시한 글을 찾지 못해서 이 글에서는 다루지 않겠습니다.



설치를 시작하기에 앞서 시스템을 최신으로 업데이트하는 것을 권장합니다.


# sudo apt-get update -y
# sudo apt-get upgrade -y
# sudo shutdown -r now




1. PhantomJS


(1) 우선 PhantomJS에서 필요로 하는 패키지를 설치합니다.

# sudo apt-get install build-essential chrpath libssl-dev libxft-dev libfreetype6-dev libfreetype6 libfontconfig1-dev libfontconfig1 -y


(2) 현재 최신버전의 PhantomJS를 다운로드 받습니다.

# sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2


(3) 압축을 해제합니다.

# sudo tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/share/


(4) 심링크를 생성합니다.

# sudo ln -s /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/


(5) 설치된 PhantomJS의 버전을 확인해봅니다.

# phantomjs --version


(6) 파이썬에서는 webdriver API를 다음과 같은 방법으로 사용할 수 있습니다.


driver = webdriver.PhantomJS('/usr/local/bin/phantomjs')





2. Geckodriver (Firefox)


셀레니움 3.0 이전 버전에서는 geckodriver를 따로 설치할 필요가 없었지만 


현재는 설치를 하지 않으면 에러를 발생합니다.



우선 파이어폭스가 설치되어 있다는 전제하에 최신버전의 geckodriver를 다운받습니다.


# wget https://github.com/mozilla/geckodriver/releases/download/v0.18.0/geckodriver-v0.18.0-linux64.tar.gz



geckodriver 파일을 어느 폴더에 압축을 풀어야 하는지에 관하여 버전별로 조금씩 차이가 있고 이에 대한 논쟁이 있는데


현재는 /usr/local/bin/에 설치하고 퍼미션을 777로 주면 작동하는 것을 확인했습니다.

(주의: /usr/bin/이나 /usr/local/bin/geckodriver/가 아닙니다.)



기본적으로는 다음과 같은 방법으로 파이썬에서 Webdriver API를 사용할 수 있습니다.


-headless 등 옵션을 사용하려면 import 해줘야 합니다. (크롬과 차이점)



from selenium.webdriver.firefox.options import Options


options = webdriver.FirefoxOptions()

options.add_argument('-headless')

driver = webdriver.Firefox(executable_path="/usr/local/bin/geckodriver", firefox_options=options)



작성자
이니스프리 119 Lv. (0%) 1875900/115200000EXP

당분간 일신상의 사정으로 쪽지나 댓글로 답변을 드리기 어렵습니다. 죄송합니다.

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [작업 완료] 설 명절 맞이 서버 업데이트 안내 3 마스터 마스터 24.02.11.17:21 368
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 4057
460 [파이썬] 어제 날짜(연월일) 구하기 이니스프리 이니스프리 20.01.01.12:42 1702
459 탐색기에서 현재 폴더를 CMD로 열기 / CMD에서 현재 폴더를 탐색기로 열기 이니스프리 이니스프리 18.10.27.14:31 1693
458 [Autohotkey] 특정시간까지 매분 정각에 다른 스크립트 파일을 실행하기 3 이니스프리 이니스프리 20.05.21.21:57 1662
457 웹폰트 속도 느려서 사용 못하시는분들 참고하세요! 12 image title: 은메달도다 17.01.27.00:18 1631
456 [파이썬] 일정한 주기로 반복문을 돌려야 되는 경우 - 코드의 실행시간이 불규칙한 경우 이니스프리 이니스프리 20.06.27.18:07 1578
455 체온계/의료기기의 통관과 관련된 사항입니다 1 이니스프리 이니스프리 19.01.17.01:52 1552
454 JavaScript에서 문자열 결합 방식의 성능차이 네모 네모 17.11.17.23:01 1527
453 HEIC to JPG 변환 이니스프리 이니스프리 19.08.29.22:37 1526
452 [Selenium] 크롬 익스텐션 사용하기 1 이니스프리 이니스프리 20.08.23.19:35 1513
451 [Python] glob.glob() 정렬 방법 정리! 이니스프리 이니스프리 21.03.07.00:49 1486
450 윈도우에서 Jupyter Notebook 설치 및 기본설정 이니스프리 이니스프리 18.09.25.11:30 1477
449 www-drv 내 클라우드를 웹서버 처럼! 트래픽 아끼기 개꿀팁!! 18 TVJ title: 열려라 맛스타의 자물쇠TVJ 17.04.29.19:52 1474
448 로지텍 G304 , G403 마우스 카일저소음 스위치(버튼) 교체!! 2 image 자뻑보이 자뻑보이 20.12.02.20:23 1472
447 ESET Internet Security 사용시 인터넷 속도저하와 관련하여 이니스프리 이니스프리 19.01.01.21:51 1457
446 [Python] 이미지의 흰 여백을 trim 하는 방법 이니스프리 이니스프리 20.06.21.20:10 1445
445 [PIL] 폴더의 전체 이미지 파일을 일괄적으로 crop하기 이니스프리 이니스프리 20.05.29.18:56 1445
444 파이썬 텔레그램 봇에서 IndexError 해결 방법 2 이니스프리 이니스프리 18.03.24.21:15 1436
443 URL에 ?ckattempt=1이 붙거나 403 에러가 뜨는 경우에 해결 방법 (카페24) 2 이니스프리 이니스프리 17.11.22.20:56 1419
442 [국립국어원] 세팅 vs 셋팅 이니스프리 이니스프리 20.01.11.16:56 1386
441 [Python] 특정 서버와 내 PC 간의 시간 차이를 구하기 (테스트 중) 이니스프리 이니스프리 21.03.20.00:11 1383