팁 & 노하우

|  분야 불문! 어떤 분야든지 자신이 알고 있는 팁이나 노하우를 남겨주세요.

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

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


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



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)



Who's 이니스프리

profile

I've got a good feeling about this, and that's all I'm going to tell you.


팁 & 노하우

분야 불문! 어떤 분야든지 자신이 알고 있는 팁이나 노하우를 남겨주세요.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 앞으로 ssh 사용시 한글 사용이 가능합니다. 7 마스터 2018.10.12 12882
공지 접속 불가 사태 수습은 진행중입니다. 35 마스터 2018.10.05 13521
공지 회원 전용 페이지가 생겼습니다. 10 file 마스터 2018.03.20 14157
165 GIF 파일의 용량을 줄여주는 사이트 - gifgifs.com file 이니스프리 2017.10.09 10056
164 안티앨리어싱 옵션: 알고 쓰자. 5 title: 황금 서버 (30일)하루살이 2017.02.25 1710
163 대학생이라면 PHPStorm 무료로 이용하세요 2 Eagles 2017.06.11 1496
162 SKT 데이터 함께 쓰기, 회선수 제한, 직구폰 개통, 아이폰 직구시 주의사항 등 관련 팁 2 이니스프리 2017.11.23 1174
161 [뻘글]CloudFlare를 사용했을 때와 그렇지 않았을 때 속도 차이는 얼마나 날까? 3 file title: 금메달 (30일)동방개념지국 2017.01.13 990
160 작업 관리자의 CPU 이름 바꾸기 1 title: 황금 서버 (30일)하루살이 2017.09.03 979
159 웹폰트 속도 느려서 사용 못하시는분들 참고하세요! 12 file title: 은메달도다 2017.01.27 956
158 PHP 7에서 아미나 구형 위젯 사용시 수정해야 할 부분 2 이니스프리 2017.11.07 881
157 직구나 프로그램 다운로드시 사용 가능한 무료 해외 SMS 수신 사이트 8 이니스프리 2017.12.09 795
156 [할인정보] 핫스팟쉴드 엘리트 VPN 평생 이용권 99.99달러 3 이니스프리 2017.02.09 759
155 .tk 로 접속이 안되는 분들이 요즘 왕왕보이네요. 15 마스터 2016.10.05 754
154 활성 네트워크 이름 바꾸기 1 title: 황금 서버 (30일)하루살이 2017.09.03 745
153 xss 공격 방어 라이브러리 jin**** 2017.07.18 714
152 텍스트 무료 로고 만들기 사이트 4 오후두시스토리 2017.04.05 663
151 www-drv 내 클라우드를 웹서버 처럼! 트래픽 아끼기 개꿀팁!! 18 title: 열려라 맛스타의 자물쇠TVJ 2017.04.29 656
150 KT 인터넷 오피스 IP 서비스 - 홈 서버용 고정 IP 제공 9 file 이니스프리 2018.03.20 548
149 [멀웨어 정보] KT 홈허브 관련 DHCP 설정 변조 관련 멀웨어 유포 정보 및 대처 방법 6 이니스프리 2017.12.05 522
148 무료 홈페이지 비교 7 맛수타 2017.05.07 488
147 [건강/의학] 허리디스크,목디스크 혹은 허리,목아프신분들을 위한 팁. 2 file death 2017.01.25 483
146 대학생일 경우 윈도우10 무료로 받을 수 있습니다 5 file benjamin 2017.07.30 451
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9
서버에 요청 중입니다. 잠시만 기다려 주십시오...