Python + PhantomJS를 사용한 웹 스크래핑 ① 환경 구축

개요



어떤 일로 python 로 웹 스크래핑용 스크립트를 만들게 되어, pip 를 처음 만지게 되었으므로 비망록으로 정리합니다.

절차



전제


  • AWS EC2
  • python2.7.6 설치됨
  • 세세한 설정은 이번에는 끝이 접기 때문에 기본, sudo 명령으로 실행합니다
  • 작업은 ~ (홈)에서 실행
  • PhantomJS 사용

  • pip 설치



    다운로드



    다음 명령을 사용하여 pip 설치용 python 파일을 다운로드합니다.

    command
    wget "https://bootstrap.pypa.io/get-pip.py"
    



    다운로드한 파일을 실행합니다.

    command
    sudo python get-pip.py
    



    ※아래의 원 라이너에서도 마찬가지로 설치 가능합니다.

    command
    curl -kL https://bootstrap.pypa.io/get-pip.py | python
    

    확인



    다음 명령으로 버전 정보가 표시되면 설치 완료입니다.

    command
    pip --version
    



    사용법



    이번에는 pip에서 selenium를 설치하여 사용해 보겠습니다.

    오류 회피



    그러나 지금은 다음 명령으로 install하려고하면 오류가 발생합니다.

    command
    sudo pip install selenium
    


    usr/local/bin$PATH에 포함되어 있지 않으므로 pip 명령이 인식되지 않습니다.

    $PATH에 추가하여 해결할 수 있지만, 이번에는 다음 명령으로 물리적으로 이동하여 해결합니다.

    command
    sudo cp /usr/local/bin/pip /usr/sbin/
    

    확인



    이제 다음 명령을 다시 실행하면 설치가 성공적으로 완료됩니다.

    command
    sudo pip install selenium
    



    구현



    다음 코드를 적절한 파일에 기록하십시오.

    sample.py
    from selenium import webdriver
    import time
    
    browser = webdriver.PhantomJS()
    url = "http://google.com"
    browser.get(url)
    time.sleep(3)
    print(browser.title)
    

    그리고 다음 명령으로 실행

    command
    python sample.py
    

    그러나 다음과 유사한 오류가 표시됩니다.

    error
    [ec2-user@adminserver sample]$ python sample.py
    Traceback (most recent call last):
      File "sample.py", line 4, in <module>
        browser = webdriver.PhantomJS()
      File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 52, in __init__
        self.service.start()
      File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 81, in start
        os.path.basename(self.path), self.start_error_message)
    selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH.
    



    이것은 PhantomJS 자체가 인스톨되어 있지 않은 것이 원인일까 생각되므로, 별도 PhantomJS 도 인스톨 할 필요가 있습니다.

    PhantomJS 설치



    기본적으로 다음 명령을 순서대로 흘려 설치를 완료합니다.

    yum 관련 설치



    command
    sudo yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++ 
    



    압축 파일 얻기



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



    해동



    command
    bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2
    sudo tar -xvf phantomjs-2.1.1-linux-x86_64.tar
    

    심볼릭 링크 만들기



    command
    sudo ln -sf ~/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
    

    확인



    command
    phantomjs -v
    



    다시 한번 다음 명령을 실행

    command
    python sample.py
    



    무사히 잡혔습니다! !

    끝에



    이것으로 python + PhantomJS 에서의 스크래핑의 준비는 할 수 있었으므로, 나머지는 갈리갈리 코딩을 해 갈 뿐이군요♪

    편안한 스크래핑 생활!

    좋은 웹페이지 즐겨찾기