크롤링을 통해 구축한 유용한 자료를 자동 포스팅해보자. 최소한의 시간과 노력으로 최대의 효과를 낼 수 있다. 물론 초기 구축은 일정 시간이 소요된다. Github에서 소스 관리를 하는 방법부터 배워야 하고 Github Actions을 이용해 일종의 작업 배치를 돌리는 법을 배워야 한다.
서버 프로그래머라면 배치 프로그램 스케줄링이 익술할 것이다. 유닉스/리눅스면 cron이고 윈도즈면 작업 스케줄러에 등록한다. 하지만 매번 로컬 PC를 켜 놓을 수도 없는 일이다. 물론 유료 클라우드 서비스를 이용할 수도 있다. 찾아보니 Github에서 스케줄링을 무료로 제공한다. 사용 제한은 있지만 소규모는 무료로 사용하는 데 지장이 없는 것 같다.
지난 포스팅에서 크롤링을 이용한 자동 포스팅을 소개했었다. 여기에 자동 배포를 연결 시켜보자. 그러면 내가 자는 동안에 원하는 시간에 포스팅이 가능하다. 일종의 오토 시스템 구축인셈이다.
1. Github 가입하기
어렵지 않으니 패스~
2. Github 프로젝트 레파지토리 생성 및 파일 업로드
프로젝트 저장 공간을 만들고 개발한 소스들을 올린다. 소스 제어와 관련이 있어서 약간 복잡하게 느껴질 수 있다. 별도 포스팅에서 정리해야 할 것 같다. 아니면 인터넷에서 검색하면 자료가 넘쳐나니 참고하도록...
3. Github Actions 등록
여기부터 스케줄링을 등록하는 부분이다. 이젠 로컬 pc환경이 아니 Github라는 서버 공간을 생각해야 한다. 즉, 그동안 잘 되던 소스도 에러가 날 수 있으니 천천히 점검해 등록하자.
(1) Gitbub에서 Acionts을 클릭
(2) 레파지토리는 Python applicatoin 설정을 따라 구성
(3) 스케줄링/작업 파일 위치 및 파일명
본 레파지토리의 하위 디렉토리 workflows에 생성된다.
(4) 스케줄링 및 작업 등록
전체 소스는 아래와 같다. 스케줄링, 작업 등을 간단하지만 세세하게 등록할 수 있어서 매우 유용하다. 게다가 무료다.
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python application
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '0 0 * * *'
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: "3.9"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests
pip install html5lib
pip install beautifulsoup4
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Test with pytest
run: |
python auto_write_yes24_top10.py
프로그램 구동을 위한 dependencies를 해줘야 한다. 앞에서도 말했듯이 여긴 로컬 PC가 아닌 github라는 클라우드 공간이다. 즉, 로컬에 설치한 라이브러리들을 모두 없으므로 별도 설치를 해야 한다.
구동할 프로그램을 등록한다. 메인을 지정해 주면 된다.
스케줄링 등록은 유닉스/리눅스 cron을 등록해 보았다면 익숙할 것이다. UTL 시간이 등록되니 아래는 매일 오전 9시에 프로그램이 구동된다.
4. 자동 포스팅 결과
'코드리뷰' 카테고리의 다른 글
미세먼지 물렀거라! 공기청정기 나가신다.[공기청정기 추천 Top 3] (0) | 2023.05.09 |
---|---|
크몽 전자책 출시 심사 통과하기 (4) | 2022.12.04 |
파이썬 크롤링으로 YES24 베스트 셀러 Top 10 가져오기 (2) | 2022.10.21 |
댓글