ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • engoo selenium 수업 자동 예약하기 코드 버전
    컴퓨럴/후로그람스 2017. 9. 23. 18:37

     Engoo는 보통 전화영어 회사와 달리 매일 직접 수업 예약을 해줘야한다. 회사 입장에서는 좋은 선생님을 한 학생이 선점하고 있다면 공정한 기회를 줄 수 없다고 생각했겠지만 매일 사이트에 들어가서 예약을 해야하는건 정말 귀찮은 일이다. 예약을 까먹어서 수업을 놓친 것도 한두번이 아니다.

     그래서 Selenium을 이용해서 컴퓨터를 켤때마다 혹은 정해진 시간에 예약되는 프로그램을 Python으로 만들었다. 이 프로그램은 지정한 시간에 수업을 듣고싶은 선생님의 리스트를 지정해 놓으면 자동으로 예약을 해준다. 컴퓨터가 하루에 한번은 켜는 일이 있어야 한다는 제약이 있다. 작업을 자동으로 실행하기 위해 작업스케줄러가 필요하니 윈도우 사용자가 사용할 수 있다.

     처음 설치하기에는 좀 귀찮은게 있지만 깔고나면 정말 편하다!

    1. 설치방법

        - 먼저 준비해야할 프로그램 - python3, chrome selenium

    python3는 기본적으로 https://www.python.org/downloads/에서 다운로드 받을수 있을 것이다. 

     Selenium은 https://sites.google.com/a/chromium.org/chromedriver/downloads 에서 Latest Release를 클릭하고 자기OS에 맞는 프로그램을 다운로드 하면된다.

    auto_engoo 다운로드하기
    https://github.com/dizwe/engoo-automatic-reservation 깃허브에서 zip파일을 다운받고 압축을 풀면 된다.

    Download ZIP 하면 된다.


    2. 코드 조금 수정하기

     자신의 컴퓨터에서 사용하기 위해서 수정해야할 부분이 3가지 있다.

    - 첫번째, selenium path 지정하기

    Selenium 파일이 들어있는 부분이 컴퓨터마다 다르므로 수정해줘야한다. 

    chrome=webdriver.Chrome(r'chromedriver.exe가 있는 path')

    다운받았던 chromeSelenium에서 chromedriver.exe가 있는 path를 찾는다. 나는 

     r'C:\Python35\selenium\webdriver\chromedriver\chromedriver.exe'

    로 설정했다.

    파일 오른쪽 클릭을 하면 위치를 바로 복사할 수 있다.


     - 두번째, reservation_info.json를 수정한다.

     json파일은 txt파일로 열거나 다른 editor파일로 열면 수정가능하다.

    {"teacher_num":["선생님","번호","11775"],

      "reserve_time":"07-30",

      "class_holiday":"False",

      "send_to":"메일주소"}

     teacher_num은 engoo 사이트에서 선생님 프로필을 누르면 https://engoo.co.kr/teachers/4621같은 url주소가 뜨는데 그 뒷부분이 선생님 번호다. 리스트를 사용하여 입력하면 먼저 적은 선생님이 우선 예약된다.

     reserve_time 안의 값은  오후 10시에 수업하면 "22-00" 이런 방식으로 적으면 된다.

     class_holiday는 매일권을 가졌다면 True(T대문자), 평일권을 가졌다면 False(F대문자)를 적는다. True라면 주말에도 수업이 예약된다.

     send_to에 메일주소를 적으면 수업예약이 실패했을때 메일을 보내준다. 사용하고싶지 않다면 ""로 비워두자.

     - 세번째, id_pass.json을 수정한다

    {"engoo":{"id" : "engoo아이디", "password" : "engoo 비밀번호"},

    "gmail":{"id" : "지메일아이디", "password" : "지메일비밀번호"}}

      이부분은 개인정보 파일이니 혼자 꼭 가지고 있어야한다. 아이디와 비밀번호를 입력한다.

     예약할 수있는 선생님이 없을때 메일을 받고 싶으면 지메일아이디가 필요하다. 지메일 아이디는 메일을 보내는 기준이 되는 메일이다. 아이디와 비밀번호를 입력하는데 https://myaccount.google.com/lesssecureapps?pli=1 에서 보안수준이 낮은 앱을 허용해야한다.


    3. 작업스케줄러(Trigger) 지정하기

     여기까지 실행했다면 이건 간단하다! 이 설명은 http://fnmj.tistory.com/19 링크가 더 잘 설명해주는 듯 하므로 이걸로 대체한다.

     참고로 python.exe를 사용하는것도 좋지만 pythonw.exe를 사용하면 코드가 끝나면 자동으로 python command line이 꺼진다.


    더하기. 이글도 아무도 안읽겠지만 더 아무도 안읽을 것 같은 

    engoo 수업 selenium으로 자동 예약 만들기 시행착오들을 쓴 글도 있다.

     exe 버전으로 만든

    Selenium으로 engoo 수업 자동으로 예약하기 글도 있다




        



Designed by Tistory.