서버리스로 자동으로 특정시간 크롤링하여 저장하려면 어떻게 해야할까요??
서버리스로 자동으로 특정시간 크롤링하여 저장하려면 어떻게 해야할까요??
특별히 많은 데이터를 자주 긁거나 하지는 않고....
대략 하루에 약 100 Call 이내로 실행할 것 같습니다.
JS 로 실제 사이트에서 긁어서 정규화 하는 등 프론트에서 할 수 있는 작업은 모두 되어있는데.
이걸 서버 없이 자동으로 크롤링하고, 구글 시트나 기타 별도의 서버 DB 없이 또 저장하는 방법이 있을지 궁금합니다.
Ex ) Git Action 을 활용하여 서버 없이 자동으로 크롤링 후 Git 커밋
혹시 ScrapingHub 라고 아시나요?
크롤러를 클라우드 환경에 올려서 실행할 수 있게 해주는 서비스입니다. 일부 제약이 있긴 하지만 기본적으로 무료이구요. 제 기억으로는 실행 시간 1시간이었던 걸로 기억하네요!
기본적으로 python의 scrapy 라이브러리를 프로젝트 통째로 deploy해서 사용하는 방식이구요. 러닝커브가 전혀 없지는 않지만.. 나름 GUI도 갖춰놓았고 사용하기 나쁘지 않습니다! 주기적으로 실행하는 기능도 있구요, 특정 스케줄을 정할 수도 있습니다. 근데 베이직의 구독료도 매우 싼 편이라.. 한 번 경험해보고 싶으시다면 확인해보시는 것 도 좋아보입니다!
링크는 제가 예전에 scrapinghub를 간단하게 정리했던 내용 입니다
아니면 이미 AWS 인프라를 사용하고 계시다면, AWS Lambda를 사용해보시는 건 어떨까요? CloudWatch와 연계해서 특정 주기마다 lambda를 실행시키면 될 것 같습니다!
공식문서 - CloudWatch Events로 AWS Lambda Invoke 하기
CloudWatch Event로 AWS Lambda 스케줄링하기 관련 문서
크롤링 이후에 데이터 로드 속도가 크게 상관없다면 S3에 저장해서 필요할 때 불러서 쓰시면 될 것 같구요!
자바스크립트로 크롤링 하면 자료는 메모리에 있는건데
그걸 디비에 저장안하고 처리하겠다는 생각은 아닌것 같습니다
로컬 MDB 든, mysql 이든 디비화 하여 처리하는게 나중에 자료처리 프로그램 업데이트 할때
확실히 좋습니다
묻지도 따지지도 말고 디비는 필수 입니다.
................