멋쟁이사자처럼 9기 지원자 웹 스크래핑 프로젝트 회고

minsgy·2021년 5월 28일
3

회고

목록 보기
2/8
post-thumbnail

해당 프로젝트는 링크를 참조해주세요.

멋쟁이사자처럼 9기 모집 사이트를 확인하면서..

2021년 2월 말, 멋쟁이사자처럼 대학 전체 모집이 시작되었다.

보면 볼수록 저 작은 사진 디자인 맘에든다.

전국 대학교 멋쟁이사자처럼 동아리에서,
같은 시기, 같은 시간에 학교 통합 지원으로 이루어진 사이트이다.

해당 사이트를 통해 지원자는 아래 과정을 통해 지원하게 된다.
1. 가입
2. 학교 선택
3. 자소서 작성

그런데 지원서를 받으면서 큰 문제가 생겼다.
바로 지원자의 정보를 끌어 모을 수 있는 기능이 없어서
일일이 지원서 하나씩 들어가서 캡쳐 방식으로 할 수 밖에 없었다.

하지만 지원자 수는 100여 명이 넘어가서 한 명씩 캡쳐하기에는 비효율적이였다.
또한 정렬 방식도 이상해, 지원서 작성 시점이 아닌 사이트 가입 시점으로 정렬되어서

긁어모으는 입장에서 굉장히 헷갈렸었던 어려움이 있었다.

그래서 나는 해당 사이트를 지원자 정보 스크래핑 프로그램을 통해
지원자 정보를 관리하려고 해당 프로젝트를 시작하였다.


어떤 방식으로 만들어야 할까?

해당 모집 사이트에서 지원서 목록을 확인하기 위해서는 총 4번을 거쳐야했다.

메인버튼 클릭 -> 로그인하기 -> 학교 선택 -> 지원서 선택

여러 번의 탭을 통해 들어가야 하기 때문에 이를 고려하여 웹 스크래핑 라이브러리를 선택했다.

bs4

BeautifulSoup은 HTML/XML Parser를 통해 정보를 뽑아낸다.
즉, Element를 Selenium 에 비해 직관적이고 빠르게 스크래핑한다.

bs4의 경우, Selenium에 비해서 속도가 훨씬 빠르고 직관적인 코드를 가졌다.
간단한 웹 스크래핑이라면 bs4를 사용하는게 맞다.

하지만, 우리가 하려는 스크래핑 과정은 4번의 탭을 지나야하는
동적인 환경에서의 스크래핑을 해야하기 때문에 알맞지 않았다.

Selenium

실제 브라우저를 실행시켜서 컴퓨터가 자동적으로 브라우저를 제어할 수 있게 한다. 어떠한 동적 활동에 대해서 스크래핑 가능하다.

현재 우리가 필요한 정보를 모으기 위해서는 Selenium이 정답이였다.

셀레니움의 가장 큰 단점은 "느리다" 라는 단점이지만,
우리가 수집하는 정보는 복잡하지 않기 때문에 부담없이 가능했다.

멋쟁이사자처럼 다른 학교 대표분들과 이야기를 나눴던 내용이다.

CSV 파일 변환으로 사용하기 쉽게 값을 저장했다.

결과적으로 Selenium 라이브러리를 활용한 프로젝트가 진행됐다.


프로젝트를 진행하면서 고려한 점

프로젝트를 진행하면서 우리 학교 뿐 아니라,
다른 학교도 비슷한 고민을 하고 있을거라고 생각했다.

그래서 나는 해당 프로젝트를 어떤 학교든 사용 가능하게 모듈화를 목표로 하였다.

  1. JSON 파일을 통한 ID, PW를 입력 할 수 있는 방식의 함수 작성

    json 파일을 불려들임으로써 ID, PW 값을 브라우저 명령을
    통해 입력해, 로그인 하도록 모듈화 시켰다.

  2. 가장 필요한 사용자 전화번호와 이름을 저장하였다.

    이러한 전화번호는 후에 자동 문자 전송 API 에 사용했다.

  3. 추가적으로 지원자의 합격/불합격 여부를 저장하여,
    이를 기준으로 정렬해CSV 파일에 저장하도록 했다.

    추가적으로 합격/불합격 여부로 정렬하여 보기 쉽게 정렬했다.

  4. 크롤링 프로그램 사용법을 README를 통해 정리하여 사용하는데 문제 없게 하였다.

    작성자는 맥이라서 다른 팀원에게 테스트를 하여서 작성했다.

이렇게 크롤링 프로젝트는 마무리가 되었고, 이를 다른 학교 사람들에게 공유하였다.


크롤링 프로그램 공유 완료!

멋쟁이사자처럼 대학 Slack을 통하여 별거 없지만,
조금이라도 도움이 되었으면 하는 마음으로 프로그램을 공유하게 되었다.

내가 만든 프로그램을 남들이 쓴다는게 이렇게 행복하다는 걸 처음알았다.

써주셔서 정말 감사합니다! 😳

그런데 이렇게 시작한 크롤링 프로젝트는 점점 커져갔다..!


추가적인 Contributors

한국기술교육대학 임우열 대표운영진님께서 추가적인 기능 제안을 해주셨다.

전화번호와 이름 뿐만 아니라, 자소서 내용까지 추가로 하여
Folder로 바꾸어서 저장하는 기능을 추가해주셨다!

우열님 최고..⭐️

아주 유용한 기능이였고, 크롤링 프로그램의 큰 기능을 기여해주셔서
다양한 분들에게 큰 도움이 됐을 거라 기대가 되었다.

그런데 작은공이 쏘아올렸던 것일까?
다른 학교에서도 크롤링 프로젝트를 이어받아서 릴레이 개발을 시작했다.


멋사 대학 릴레이 개발 시작!

정말 간단한 프로그램에 대해서 다들 많은 관심을 가지고
새로운 크롤링 프로젝트를 기여해주셨다.

여기를 통해 성제님께서 만드신 릴레이 프로젝트 확인 할 수 있다.

여기에서 예빈님께서 만드신 릴레이 프로젝트를 확인 할 수 있다.


프로젝트를 진행 하고 나서..

많은 걸 배웠던 프로젝트 였다.

  1. 파이썬에 대한 이해를 높일 수 있던 계기

    문자열 정렬과 Pandas 라이브러리를 활용할 수 있었고,
    정규식을 활용하여 문자열 변환 대해서 배우게 된 계기가 되었다.

  2. 프로젝트는 공유해서 서로 성장해야 한다.

    다른 학교 분들의 코드를 보고 많이 배웠던 프로젝트였고,
    내가 만든 프로그램을 누가 써준다면 그것만큼 기쁜 것은 없더라!

고마운 분들

의도치 않은 릴레이 개발에 참여해주셔서 감사합니다!
앞으로도 많은 정보 공유해서 함께 성장하면 좋겠습니다 :)

profile
커뮤니케이션은 내 성장제🔨

3개의 댓글

comment-user-thumbnail
2021년 7월 27일

저도 제가 만든 파이썬 스크립트를 어떻게 오픈소스화 할 지 고민하고 있었는데 참고해서 진행해보면 좋을 것 같네요 감사합니다!

1개의 답글
comment-user-thumbnail
2021년 8월 9일

민석님......정말 놀랐습니다... 너무나도 인재시군요... 민석님께 배울 점이 정말 많은 것 같습니다..!! 앞으로 같이 성장하며 배워나갔으면 좋겠습니다!! 잘 읽었습니다!!🤗🤗

답글 달기