본문 바로가기
카테고리 없음

[윈도우10/11] 파이썬 + 윈도우 스케줄러: 매일 아침 뉴스/주가 자동 크롤링 세팅

by First Challenger 2026. 7. 25.
반응형

"출근 전, 비서가 미리 뉴스와 주가를 정리해 둔다면?" 100% 무인 자동화의 완성

  파이썬(Python)을 배워서 열심히 네이버 뉴스나 주가를 크롤링하는 코드를 짰다고 가정해 봅시다. 코드를 실행하면 1초 만에 데이터가 엑셀로 저장되는 마법을 경험하셨을 겁니다. 그런데 다음 날 아침, 이 코드를 실행하기 위해 결국 또 컴퓨터를 켜고, 파이썬 편집기를 열고, 실행 버튼(Run)을 '직접' 누르고 계시지는 않나요?
  사람이 직접 버튼을 눌러야만 돌아가는 코드는 진정한 의미의 자동화가 아닙니다. 내가 출근하기 전인 아침 8시 50분, 컴퓨터가 알아서 백그라운드에서 파이썬을 실행하고 9시 정각에 내 바탕화면에 '오늘의 주가 리포트'를 띄워두게 만드는 것이 진짜 자동화입니다.
  오늘은 별도의 서버나 복잡한 리눅스(Linux) 환경 없이, 사무실이나 집에 있는 윈도우(Windows) 기본 앱인 '작업 스케줄러'를 활용하여 파이썬 코드를 365일 자동으로 실행시키는 완벽한 세팅법을 공개합니다.


1단계: 크롤링 파이썬 코드 준비하기 (예제)

  먼저 자동으로 실행할 파이썬 코드가 필요하겠죠? 네이버 금융에서 특정 종목(예: 삼성전자)의 현재 가격을 긁어와 바탕화면에 텍스트 파일로 저장해 주는 아주 간단한 크롤링 코드를 준비했습니다. (메모장에 아래 코드를 복사하고 stock_crawler.py라는 이름으로 C:\Auto 폴더를 만들어 저장해 두세요.)

import requests
from bs4 import BeautifulSoup
from datetime import datetime

# 1. 네이버 금융 삼성전자(005930) 페이지 접속
url = "https://finance.naver.com/item/main.naver?code=005930"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

# 2. 현재 주가 추출
price = soup.select_one('.no_today .blind').text
now = datetime.now().strftime("%Y-%m-%d %H:%M")

# 3. 지정된 경로에 메모장(txt) 파일로 기록 누적 (경로는 본인 PC에 맞게 수정)
file_path = r"C:\Auto\주가리포트.txt"
with open(file_path, "a", encoding="utf-8") as f:
    f.write(f"[{now}] 삼성전자 현재 주가: {price}원\n")

💡 [자동화 스킬업] 단순 텍스트 말고, '로그인'과 '버튼 클릭'까지 필요하다면?

위 예제처럼 주소(URL)만으로 데이터를 긁어올 수 있다면 좋겠지만, 실제 업무에서는 회사 인트라넷에 아이디를 치고 로그인하거나 특정 엑셀 다운로드 버튼을 클릭해야 하는 경우가 더 많습니다.
마우스와 키보드 입력 등 사람의 모든 웹 브라우저 행동을 100% 똑같이 모방하는 파이썬 셀레니움(Selenium) 기초 활용법을 아래 포스팅에서 먼저 마스터해 보세요.

👉 [윈도우10/11] 매일 반복되는 웹 클릭 노가다, 파이썬 셀레니움으로 완전 자동화


2단계: 징검다리 역할, '실행 파일(.bat)' 만들기

  윈도우 작업 스케줄러가 파이썬 코드를 에러 없이 실행하게 하려면, 직접 .py 파일을 등록하는 것보다 배치 파일(.bat)이라는 징검다리를 하나 만들어 주는 것이 훨씬 안정적입니다.

  • 윈도우에서 '메모장'을 켭니다.
  • 아래의 3줄 코드를 그대로 복사해서 붙여넣습니다.
    @echo off
    cd C:\Auto (파이썬 파일이 있는 폴더 경로)
    python stock_crawler.py (파이썬 실행 명령어)
  • 메모장에서 [파일] - [다른 이름으로 저장]을 누르고, 파일 이름을 run_crawler.bat으로 적은 뒤 C:\Auto 폴더에 저장합니다. (저장할 때 파일 형식을 '모든 파일'로 바꿔야 합니다.)

3단계: 윈도우 '작업 스케줄러'에 알람 맞추기

  이제 방금 만든 .bat 파일이 매일 아침 특정 시간에 스스로 실행되도록 윈도우 시스템에 알람을 맞춰줄 차례입니다.

  1. 윈도우 하단 검색창에 '작업 스케줄러'를 검색하여 실행합니다.
  2. 우측 메뉴에서 [작업 만들기...](기본 작업 만들기 아님)를 클릭합니다.
  3. [일반] 탭: 이름에 '매일 아침 주가 크롤링'이라고 적고, 아래쪽의 '가장 높은 수준의 권한으로 실행'에 체크합니다.
  4. [트리거] 탭: '새로 만들기'를 클릭하고, 작업 시작을 '예약 상태'로 한 뒤 '매일'을 선택하고 원하는 시간(예: 오전 8:50:00)을 세팅한 후 확인을 누릅니다.
  5. [동작] 탭: '새로 만들기'를 클릭하고, 동작을 '프로그램 시작'으로 둡니다. 찾아보기를 눌러 2단계에서 만들었던 C:\Auto\run_crawler.bat 파일을 선택합니다.
    *중요: 아래쪽 '시작 위치(옵션)' 칸에 반드시 C:\Auto\ 라고 폴더 경로를 입력해 주어야 경로 에러가 발생하지 않습니다.
  6. 모든 세팅이 끝났습니다. [확인]을 누르면 목록에 내 자동화 스케줄이 등록됩니다.

  이제 여러분이 컴퓨터 전원만 켜두었다면, 매일 아침 8시 50분이 되는 순간 검은색 CMD 창이 0.1초 켜졌다가 사라지며 C:\Auto 폴더 안에 싱싱한 주가 데이터가 담긴 텍스트 파일이 생성되어 있을 것입니다.


자주 묻는 질문 (FAQ)

Q1. 지정된 시간에 컴퓨터 전원이 꺼져 있거나 절전 모드면 어떻게 되나요?

A1. 아쉽게도 PC 전원이 완전히 차단되어 있다면 스케줄러는 작동하지 않습니다. 매일 정해진 시간에 코드가 돌아가길 원하신다면, 퇴근하실 때 PC를 끄지 말고 '화면 끄기' 상태로 두셔야 합니다. 또는 작업 스케줄러의 [조건] 탭에서 '이 작업을 실행하기 위해 컴퓨터 절전 모드 종료' 옵션을 체크해 두면 절전 모드 상태에서도 PC가 스스로 깨어나 코드를 실행합니다.

 

Q2. 실행은 되는 것 같은데, 결과 파일이 생기지 않거나 에러가 납니다.

A2. 작업 스케줄러 연동 시 발생하는 오류의 99%는 '경로(Path) 문제'입니다. 파이썬 코드 안에서 엑셀이나 텍스트 파일을 저장할 때 "주가리포트.txt"처럼 이름만 달랑 적지 마시고, "C:\Auto\주가리포트.txt"처럼 최상위 드라이브부터 시작하는 '절대 경로'를 정확하게 명시해 주어야 윈도우가 길을 잃지 않습니다.

 

Q3. 굳이 윈도우 스케줄러를 쓰지 않고 파이썬의 schedule 라이브러리를 쓰면 안 되나요?

A3. 물론 파이썬 내부 코드에 schedule.every().day.at("08:50").do(job) 처럼 반복문을 걸어둘 수도 있습니다. 하지만 이 방식은 파이썬 터미널 창을 하루 종일 띄워놓아야 하므로 실수로 창을 닫으면 자동화가 멈춰버립니다. 반면 윈도우 작업 스케줄러는 운영체제 단에서 코드를 쏴주는 형태라 훨씬 안정적이고 리소스(메모리)를 적게 차지합니다.


마무리

  프로그래밍의 진짜 가치는 반복되는 루틴에서 사람을 완벽하게 해방시키는 데 있습니다. 아무리 훌륭한 크롤링 코드를 짰더라도 그것을 사람이 매일 실행해야 한다면 여전히 노동에 불과합니다.
  오늘 배운 배치 파일(.bat) 생성과 윈도우 작업 스케줄러 연동은 여러분의 PC를 365일 연중무휴로 일하는 나만의 무료 전산실 서버로 만들어주는 가장 강력한 기술입니다. 오늘 당장 테스트용 알람을 맞춰놓고, 컴퓨터가 스스로 일하는 짜릿한 경험을 맛보시길 바랍니다.

```eof

반응형