본문 바로가기
IT일반

실거래가 공공api를 크롤링하여 웹사이트 만들기

by xavi2019 2023. 7. 4.

어떤 데이터를 크롤링(스크래핑)하여 나만의 웹사이트를 만드는 것은 꽤 필요성이 있는 주제인 것 같습니다.

 

예를 들면,

  • 아파트 실거래가 처럼 오픈된 공공 api를 python으로 크롤링하여 DB에 넣기만 하면
  • 모바일에서도 잘 보이는 웹사이트가 자동으로 만들어지고
  • Crontab으로 스케줄링하여 주기적으로 데이터를 가져와야하고
  • 모바일에서도 잘 보이니, 앱 패키징을 하면 앱으로 출시할 수도 있고
  • 이용자들이 앱에 받기 원하는 아파트의 실거래가 정보를 설정해 놓으면, 각 이용자들에게 맞춤형 푸시 알림을 보내준다.

정도의 서비스? 실제로 이정도 기능만 만들어도 취미로 꽤 훌륭한 서비스가 나올 수 있습니다.

 

개인적으로, 이를 빠르게 구현해서 현재, 몇가지 서비스를 만들어서 운영중에 있습니다.

 

빠르게 구축하기 위해서

  1. 웹사이트는 php 기반의 게시판형 cms인 그누보드를 이용했습니다.
  2. 스킨을 반응형으로 만들어 놓은 것이 있어서(찾아보면 공개된 무료 스킨들도 좀 있습니다)
  3. 크롤링한 데이터를 특정 게시판 DB 테이블에 그누보드의 구조에 맞게 입력하면 모바일에서도 잘 보이는 웹사이트가 바로 만들어 집니다.
  4. 주기적으로 데이터를 가져오도록 해놨기 때문에, 서비스 운영에 손이 거의 안갑니다.
  5. 또, 모바일웹을 iOS/Android 앱으로 패키징해주는 소스를 만들어, 앱으로 출시 했습니다.
  6. 회원으로 가입하여 관심 키워드를 설정해 놓으면, 주기적으로 데이터 가져오고 난 후, 일치하는 내용이 있으면 각 회원에게 개인화된 앱 푸시를 발송 하고 있습니다.
  7. 또한, 데이터를 가져왔을 때, 텔레그램/슬랙 등으로 관리자에게 알림을 보내어 데이터를 잘 가져오고 있음을 알려줍니다.

 

1번부터 4번까지를 빠르게 구현해주는 유료이지만 강의가 있습니다.

 

체험코딩(https://try.tera.co.kr)의 강의

 

하지만!

 

위에 언급한 내용은,

  • 주기적인 데이터를 가져오기 위해서 리눅스 스케줄러인 Crontab을 이용해야 합니다.
  • 또한 ec2를 직접 구축해야하는 난이도와 복잡도 있습니다.
  • 저렴한 국내 호스팅(카페24같은) 환경에서는 Crontab을 접근하지 못하게 하므로 다른 방법을 찾아야합니다.

 

그래서 Crontab을 사용하지 않는 방법을 고민해 봤더니, 역시 방법이 있습니다.

  • 주기적으로 특정 URL을 호출해 주는 서비스는 없을까?
  • 만약 있다면, 크롤링을 python이 아니라, php로 만들면, url이 나오니 가능!

그래서 찾아보니, https://cron-job.org/ 이라는 무료 서비스가 있었습니다.

그리고 크롤링 모듈을 php로 만들고 그누보드 디렉토리에 올려놓고, 몇가지 보안장치를 해서 아무나 호출못하게 하니,

완벽하게 구현했습니다.

 

 

관련된 강의(유료)가 이것입니다.

 

체험코딩(https://try.tera.co.kr)의 강의

 

 

댓글