Python 2.7과 selenium + webdriver(chromedriver), BeautifulSoup4를 이용하여 만든 크롤러입니다. 네이버에 로그인하고, 메일 페이지에서 특정 사용자로 검색 및 안 읽은 메일만 가져오도록 필터링하여 메일 내부의 첨부파일을 특정 위치로 다운로드받도록 하여 영상을 찍어 봤습니다. 네이버의 경우 로그인할 때 의심스러운 행위를 자동으로 감지하여 캡차로 막기 때문에 이를 우회하기 위해 네이버 메인을 경유하여 로그인 페이지로 이동하고, 중간중간 랜덤한 시간동안 Sleep하는 코드를 넣어두었습니다. 소스코드는 다음과 같으며, 라이센스는 MIT 이므로 누구나 원하는 곳에 사용이 가능하지만 이 프로그램을 사용함에 있어 발생하는 모든 책임은 사용자에게 있습니다.




소스코드


NaverMailCrawler.py



Utils.py

블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

댓글을 달아 주세요

  • True Worship 2019.01.26 00:08 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.
    글 잘 읽고 네이버 로그인을 selenium으로 시도하고 있습니다.
    이 글을 작성하실 때는 동영상 찍으신 것 처럼 되셨을것 같은데
    지금은 안되네요..ㅠㅠ
    계속 여러가지 방법으로 시도해보고 있지만 결국은 캡차 때문에 막히고 있습니다.
    혹시라도 캡차를 우회할 수 있는 방법이 있으시다면 공유를 부탁드려도 될까요?

    • __미니__ 2019.01.26 00:21 신고  댓글주소  수정/삭제

      안녕하세요.
      본문의 Sleep을 이용한 우회법의 경우 절대로 완벽한 우회 방법이 아니고 무척 단순한 방식이기 때문에 우회가 불가능한 경우가 상당히 많을거라고 생각합니다. 정말 완전한 우회를 원한다면 실제 이용자가 로그인을 시도하는 것처럼 User Agent, Referer, Host 등 HTTP Request Header를 완벽히 꾸미고 조작하여 넣으면 되겠지만 이는 불가능에 가깝습니다.

      이외에 가장 간단한 방법이라면 미리 직접 로그인한 후 세션을 끊지 않은 상태로 쿠키 값을 저장해 뒀다가 Selenium의 add_cookie 함수 등으로 쿠키를 넘겨 자동으로 로그인된 상태로 만드는게 있습니다. 하지만 이 방식은 본인이 원하시는 방식이 아닐 것 같네요.

      제가 생각하는 가장 좋은 방법은 네이버에서 제공하는 API를 이용하는 것입니다. OAuth라고들 하는데요, https://developers.naver.com/docs/login/overview/
      여기에서 오픈API 이용 신청을 통해 정식으로 사용 허가를 받고 클라이언트 ID와 Secret 값을 발급받아서 API로 사용하면 원하시는대로 로그인이 가능할 것이라고 생각합니다.

      문제는 이용 신청 및 허가가 떨어져야 한다는 것이고 그게 귀찮거나 어려울 수 있는 환경이라는 것이네요...

      하지만 이 부분은 별다른 수가 떠오르지 않네요 ㅠㅠ
      답변이 되었다면 좋겠습니다.

  • True Worship 2019.01.26 00:50 신고  댓글주소  수정/삭제  댓글쓰기

    답변 정말 감사합니다!!

    캡차화면에서 뒤로가기 한 다음에 제가 직접 입력하면 로봇으로 보지 않고 로그인이 되는걸보니 희망이 생겨서 pyautogui를 같이 이용해서 우회해보려고 했지만 안되더군요..ㅠㅠ

    한번 알려주신대로 API이용해서 OAuth로 시도해봐야겠네요!

    감사합니다!