본문 바로가기
IT 종사자로서 떠들기

웹크롤링 자동화 프로그램 GCP에 구축하기

by Cyprus 2023. 10. 2.

현재 상황 

- 단순 반복적으로 웹페이지에서 200여개의 명단을 날마다 검색하고 결과값이 이상없음을 확인해야 함 

  (이런 류의 일은 사무직종 전반에서 약간씩 패턴을 바꿔서 있는 일임. 사이트 20군데에서 날마다 새로운 보고서를 다운로드 받아야 한다거나, 사이트 40군데에서 자사 기사만 검색해서 추출해야 한다거나, ...) 

 

- 파이썬 + 셀레니움으로 이 과정을 자동화하는 스크립트를 간단히 개발해, 담당 직원들에게 이 스크립트를 돌려서 쓰라고 시킨 상황 

 

- 그러나 주말에는 스크립트를 돌릴 수 없고, 직원 휴가시 돌릴 수 없고, 또 셀레니움이 돌아가는 동안 컴퓨터를 못 쓴다는 불만도 제기 

 

 

의식의 흐름 

- 셀레니움을 돌릴 때 헤드리스 브라우저로 고치긴 했으나 가급적 스크립트를 서버에 두고 배치 스케쥴러로 돌리고 싶음 

 

- 회사용 클라우드 서비스 (AWS)에 구축할 수는 있겠으나...

  > 람다+파이썬 셋팅하기 귀찮음 

  > 내부 보안 문제가 있을지 어떨지 모르겠음 

  > 사내 인프라 잘 못 건드리고 싶지 않음 

 

- 사내에 PC 서버를 한 대 두고, 배치 프로그램을 돌릴까? 

  > 남는 PC는 없고 남는 Mac은 1대 있음 

  > 윈도우 PC가 있어도 과연 날마다 잘 돌까?

  > Mac을 365시간 켜두는 것에 대한 보안 우려 있음

 

- 그러면 집에다 Mac 서버를 한 대 구축해두고 배치 프로그램을 돌릴까? 

  > 일단 Mac Mini 1대를 염가로 영입 (...이런 건 동작 빠름 -_-) 

  > 그런데 의외로 Mac 에서 원격제어 등 원하는 클라이언트 옵션이 어려움 

 

- 그런데 의외로 구글과 오라클에서 "평생 무료 클라우드" 라는 티어가 존재함을 확인 

 

- 오라클이 더 파격적인 조건을 제시하지만, 일단 더 익숙한게 구글이니 구글로 선택

 

주요 리소스 

  - 구글 클라우드 콘솔 https://console.cloud.google.com/compute/instances?hl=ko&_ga=2.112455105.474116826.1696038117-1666979498.1696038115&project=first-kite-400601 

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

 

- 구글 클라우드 무료티어 생성 

https://minimin2.tistory.com/171

 

- 클라우드에 파이썬, PIP 등 설치하기 : 이건 찾아보면 금방 몇 개 나온다.  

 

- 클라우드에 크롬드라이버 및 크롬 설치하기 

https://tecadmin.net/setup-selenium-with-chromedriver-on-debian/

가장 핵심적인 자료. 위의 자료는 매우 좋은 설치 안내를 보여주고 있으나 다만 Step3 의 크롬드라이버 다운로드 경로가 예전버전임을 참고해야 함. 이외에는 이 자료 보면서 설치하면 됨 (가장 찾기 어려웠던 부분인데 매뉴얼이 좋아서 쉽게 해결...)

 

 

- SSH 클라이언트를 사용 시 Key 등록하는 법 

https://kibua20.tistory.com/100

 

GCP(Google Cloud) 로컬 PC에서 VM에 로그인 없이 바로 SSH로 바로 접속: 다른 SSH 클라이언트 사용 및 SSH

Google Cloud Platform(GCP)의 가상 머신(Virtual Machine) SSH 접속은 기본적으로 Chrome에서 Google Cloud Platform 사이트에 로그인 후 브라우저의 SSH Client를 사용합니다. GCP 로그인 없이 로컬 PC의 터미널이나 윈도

kibua20.tistory.com

 

터미널 클라이언트는 나도 늘 Putty 정도만 썼는데, 

무료툴로 MobaXTERM 이라는 툴이 있어서 사용해보니 꽤 좋다. 

텍스트에디터, FTP 등 필수적인 유틸리티 등이 결합되어 있어서 간단하게 쓰기 좋다. 

 

----- 

 

- 만들어두고 보니 ... 문제가 몇 가지 있는데, 

  기본적으로 유지보수를 하지 않으려고 만든 프로그램인데

  검색 대상이 바뀔 때마다 (종종 바뀜) 내가 바꾸고 테스트를 해줘야 하는게 제일 치명적이다. 

   외부 저장소에 파일을 업로드해주고 읽고 쓰게 만드는 방법이 있기는 하겠으나 그걸 만들 생각을 하니 정신이 아득해진다... 

 

반응형