Selenium Webdriver를 활용하면 웹 파싱이나 반복작업 등을 처리할 수 있습니다. 여기서는 간단하게 Instagram Login을 해보는 과정을 작성해봅니다. 


  환경설정이나 라이브러리 설치는 건너뛰고요. 저는 chromedriver를 활용해서 해보겠습니다. chromedriver는 아래 주소에서 받으실 수 있습니다. 적당한 곳에 다운로드 및 위치 해두면 됩니다. 


  chromedriver : http://chromedriver.chromium.org/



  일단 인스타그램 로그인 페이지를 띄워보고 어떻게 할지 작성할게요. 아래와 같은 창인데요. 단순하게 Id 역할을 하는 phone number, username, or email 입력하는 input이 하나 있고요. password input이 하나 있습니다. 둘다 입력하면 아마도 Log in 버튼이 활성화될 것이고요. 



 로그인 페이지에 접속하는 코드는 아래와 같습니다. 


 24 라인에서 로그인 페이지를 설정합니다. 

 26 ~ 28 라인에서 webdriver 옵션을 설정합니다. 여기에서는 모바일 버전으로 들어가도록 설정했습니다. 

 30 라인에서 webdriver를 하나 띄우고

 31 라인에서 로그인 페이지로 이동하도록 합니다. 


 *코드는 제일 아래 Github에서 확인 및 복사하실 수 있습니다.







  42 라인에서 잠시 쉬고요.

  44 ~ 45 라인에서 find_elements_by_name 과 send_keys를 이용해서 값을 입력합니다. 

  47 라인에서 Log in 버튼을 누르고요.

  51 라인에서 not now를 선택합니다. 





  웹 페이지 안에서 elements를 선택할 때 다양한 방법이 있습니다. 아래 URL을 참고하시면 됩니다. 


  Locating Elements : https://selenium-python.readthedocs.io/locating-elements.html


  제일 편한 것은 xpath 같은데요. xpath를 쉽게 얻는 방법은 chrome에서 가능합니다. developer tool을 열고 원하는 elements를 선택하고 copy xpath 하시면됩니다. 예를 들어서 인스타그램 로그인 페이지에서 Log in 버튼에 해당하는 xpath를 얻어보면 아래 그림과 같습니다. 쉽죠?

  





위 코드는 아래 Github에 올려뒀습니다. 참고하세요. 


https://github.com/motobyus/moto/blob/master/util/selenium/login-test.py



+ Recent posts