0%

Python과 Django로 만드는 PyCrawler Part 1

Crawling의 세계로…

최근 회사에서 서비스 개발을 하던 도중 고객의 요청이 있었다.
참고로 나는 회사에서는 아파트 커뮤니티 관련 서비스 개발 업무를 맡고 있다.
고객의 요청이란…

자신들이 서비스를 이용하기 앞서 기존에 쓰던 커뮤니티 자료를 옮겨주세요!

기존에 쓰던 커뮤니티를 조사해보니..
대부분 네이버 카페, 다음 카페, 그리고 자체적으로 만든(의뢰한) 홈페이지 들이었다.
일단 커뮤니티 관련 데이터 처리는 레거시 개발 담당자 분이 맡았는데, 먼저 기존의 커뮤티니의 자료를 수집해 달라는 요청을 하였다.

쉽게 정리하면 크롤링하며 데이터를 가공 후 회사의 서비스에 맡는 데이터로 맞춰서 저장하는게 목표였다.

일단 레거시를 담당하는 개발자 분이 엄청난 업무량으로 인해 기존의 커뮤니티 자료를 옮기는 일이 버거웠고, 이 부분을 내가 맡아서 하기로 하였다.


크롤링 개발에 앞서…

먼저 자바로도 개발을 할 수 있었지만…
매번 자바를 쓰니 좀 질리는 부분도 있었고, 크롤링은 주로 Python을 많이 사용하기에(나만 그렇게 생각하는 것일수도…) Python을 이용해보기로 했다.
그리고 레거시 개발 담당자가 API 형식으로 호출하면 데이터가 나오게끔 처리해야 하기에 Django를 사용하여 API를 제공해보기로 했다.


PyCrawler

먼저 회사에서 개발한 부분에서 주요 정보를 제거한 버전을 Github에 등록해 두었다.
해당 버전은 다음 카페만 크롤링 되도록 처리된 프로젝트이며, 완벽하지 않을 수 있다.

제공하는 API는 아래와 같다.

  1. 게시판 리스트 정보 가져오기.

    • 특정 카페의 게시판 정보를 가져오는 API
    • 해당 카페에 존재하는 게시판과 게시판의 갯수 정보를 반환
  2. 게시판 컨텐츠 리스트 가져오기.

    • 특정 게시판의 컨텐츠 리스트를 가져오는 API
  3. 게시판 컨텐츠 가져오기.

    • 게시판의 게시글 정보를 가져오는 API
    • 본문의 작성자, 작성시각, 본문 정보를 반환
    • 본문의 경우 p, br, img 태그를 포함하여 가져온다.

자세한 정보는 Part2 포스팅에서 다룰 예정이다.
새벽 2시의 압박감으로 인해 점심에 Part2 포스팅을 작성하고 집에서 다시 올릴 예정이다…