티스토리 뷰

개발/tools

webpage 크롤링(crawling)+Slack API

Jaeyeon Baek 2016.05.11 08:47

crawling.

[컴퓨터] 크롤링; (검색 엔진에서) 분산 저장되어 있는 정보를 수집하여 검색 대상으로 복제·보존하는 기술.


크롤링은 여러 방면에서 사용되는데 일반적인 소프트 유저라면..

- 기상청 날씨를 긁어온다

- 식단 표를 긁어온다


등으로 사용할 수 있겠습니다.

이야기는 많이 들었었는데 이번에 필요하게 되어 직접 크롤링을 해봤습니다.


발단은 이러합니다.

이번 회사에서 인터뷰어 활동을 하게 되면서 이력서 검토도 하기 되었는데

문제는 작은 중소기업이다 보니 구직 사이트에 이력서가 새로 들어왔는지 종종 접속해서 확인하는 시간이 아까웠습니다. 

(많은 이력서가 쏟아 지는게 아니다 보니까..)


그래서 아래와 같은 요구 조건으로 개발을 시작했습니다.

- 주기적으로 구직 사이트(기업 계정)를 크롤링

- 새로운 이력서가 있으면 알림

- 이 정보를 슬랙에 알림


결과적으로는 아래 기술들이 사용됐네요.

- PHP(curl) + shell script + slack api + crontab


제일 문제가 된 부분은 https로그인 부분이었습니다.

어떤 정보들을 어떤 필드(?)로 넘겨줘야 하는지 찾는데 많은 시간이 소모됐네요. 

결국 브라우저 개발자 모드로 확인이 가능했는데 공개할 정도는 아닌 것 같고.. 

(특별히 다른 방법이 존재 할까요?)


그리고 slack api는 아래 두 링크만 확인하면 사용할 수 있습니다

- 슬랙 채널에 메시지 보내기 : https://api.slack.com/methods/chat.postMessage/test

- 슬랙 채널 ID값 알아내기 : https://api.slack.com/methods/channels.list/test


이제 새로운 이력서가 올라오면 슬랙에 특정 채널에 정보가 써지고 핸드폰에서는 슬랙의 새글 알림이 울립니다.


참 별거 아닌데 유용하고 좋네요. 이런 소소한 즐거움에 취해봅니다.. ^^

댓글
  • 프로필사진 이창용 안녕하세요 혹시 이 방법으로 특정 채널의 가입자수를 제 홈페이지로 크롤링도 가능할까요?? 2017.09.25 17:14
  • 프로필사진 BlogIcon Jaeyeon Baek 질문을 정확하게 이해하지 못했지만, 특정 채널(슬랙)의 가입자수를 알아내는건 어렵지 않습니다. 채널에 가입되어 있는 사용자를 애초에 json 형태로 알아낼 수 있으니까요. 2017.09.26 15:42 신고
댓글쓰기 폼