티스토리 뷰
원티드 인사이트(구 크레딧잡)에서 회사 정보 끌어오는 크롬 익스텐션 만들기 - 1. 크레딧잡 크롤링 API 만들기
개발자 하나 2023. 6. 20. 23:20구인 공고를 보다 보니 구인 공고 사이트는 많지만 회사 정보가 부정확하거나 적어서 매번 회사 정보를 찾아보기가 귀찮았습니다.
처음 생각했던 건 흔히 회사 정보를 보는 크레딧잡, 잡플래닛 등의 정보를 끌어다가 팝업으로 보여주는 화면. 하지만 잡플래닛은 로그인 후 이용권을 통해서 정보를 볼 수 있기 때문에(평점은 쓸모가 있을지도 모르지만 사실 잡플 평점은 지나치게 높거나 낮은 곳이 많아서 신뢰성이 떨어질 것 같아서) 일단 제외하기로 했습니다.
잡플래닛에서 현직자 리뷰가 제외된 평점이 제공된다면 좀 더 신뢰도가 있을 것 같은데 그건 직접 들어가서 보는게 나을 것 같기도 했습니다.
아무튼 그런 기능을 제일 잘 구현할 수 있는 건 역시 크롬 익스텐션 같았습니다.
먼저 nodejs로 selenium을 이용해 회사명을 input으로 받아 크레딧잡에서 회사 연수, 총 인원, 입/퇴사자, 평균 연봉정보 끌어오는 API를 만들었습니다.
만들다 보니, 크레딧잡에서 회사명으로 검색했을 때 여러가지 경우의 수가 생겼습니다.
일단, 예를 들어 미나리라는 회사가 있다면 똑같은 사명인데 지역만 다른 경우가 있었고, 미나리잡스 같이 검색한 회사명이 포함된 다른 회사가 여러개가 나왔습니다.
회사명이 아예 검색 안되는 경우도 있었고, 정보를 블락해 놓은 기업도 있었습니다.
그래서 status 상수를 설정해놓고
1. 회사 검색결과가 없으면 없다는 상수 return
2. 회사 검색결과가 여러개이고 인덱스 정보가 없으면 회사목록 status와 회사목록 return
3. 그 외 회사 검색결과가 1개이면 회사 정보 return
4. 회사 검색 결과가 1개 초과이지만 인덱스 정보가 있으면 회사 정보 return(회사목록을 보고 사용자가 선택한 경우)
5. 조회한 정보가 block이면 회사 정보가 비공개인 status return
이런식으로 분기를 나눴습니다.
API는 결과가 잘 나왔고, 도중에 크레딧잡이 원티드 인사이트로 변경되어서 xpath가 약간 변경되었지만 소스를 수정하니까 잘 돌아갔습니다.
그 다음은 크롬 익스텐션을 작성했습니다.
마우스 드래그로 회사 이름을 선택하고, 오른쪽 버튼을 누르면 chrome sync storage에 '선택한 회사명'으로 저장됩니다.
크롬 익스텐션 버튼을 누르면 자동으로 회사 정보를 검색해 보여줍니다.
한 번 검색한 회사 정보는 storage에 저장되어 저장된 정보를 불러옵니다.
만들어두니 편하긴 한데 크롬 익스텐션에서 실행하는 UI가 약간 아쉬워서 다른 크롬 익스텐션 개발과정을 참고해 바꾸려고 합니다. 변경하면 2탄으로 작성하겠습니다.
여기까지의 개발 소스는 https://github.com/choisaelim/kreditjob_search 에 업로드하였습니다.
'node js 크롤링' 카테고리의 다른 글
원티드 인사이트(구 크레딧잡)에서 회사 정보 끌어오는 크롬 익스텐션 만들기 - 2. 원티드에 버튼 눌러서 회사 정보 조회 기능 만들기 (0) | 2023.06.27 |
---|---|
koa cors 사용시 res.setHeader is not a function 오류 (0) | 2023.05.22 |
node js 오류 (0) | 2023.05.12 |
node js 개별 모듈 업데이트하기 (0) | 2023.05.11 |
크롤링(npm) xpath 부모 노드 > 자식 노드 이동, 형제 노드 이동 (0) | 2023.05.10 |