[주식 데이터 자동 기록 기초] EP02. 파이썬으로 야후 파이낸스 주가 정보 텔레그램 알림 받기
수동으로 주식 기록을 하다가 자꾸 빼먹고 관리가 안 돼서 컴퓨터한테 자동화를 맡기기로 하고 시작한 프로젝트다.
지난 글(EP01)에서는 구글 클라우드 콘솔을 통해 블로거 API 인증키를 발급받고, 매번 로그인 없이 패스할 수 있는 마스터키(token.pickle)를 내 컴퓨터에 확보하는 구글 블로거 연동 작업을 명확히 마쳤다.
이번 글(EP02)의 핵심은 야후 파이낸스와 파이썬을 연동해 실시간 주가 데이터를 긁어오고, 이를 내 휴대폰 텔레그램 수신 테스트까지 완벽하게 성공시키는 것이다. VS Code 설치부터 첫 실시간 딩동 메시지를 받기까지 직접 삽질하며 해결한 실전 기록을 담았다.
여기까지 성공하고 나면, 다음 글(EP03)에서는 수집한 데이터들을 휘발시키지 않고 차곡차곡 누적 보관할 노션(Notion) API 연동과 데이터베이스 자동화 환경을 구축할 예정이다.
그럼 시작해보자.
1. 준비사항
(1) 텔레그램 봇 토큰과 Chat ID
(2) 이 글은 시리즈로 작성되는 글이기 때문에 이전 글에서 수행했어야 할 사항들이 마무리되어 있어야 이번 글 또한 실행이 가능합니다. 이번 시리즈의 1편은 아래 버튼으로 연결된다.
2. 야후 파이낸스, 통신 앱 설치
💡알고 있어야 할 기초사항
- yfinance (야후 파이낸스 앱) : 전 세계 주식 시장의 실시간 가격(한화오션 현재가 등)을 파이썬으로 긁어올 수 있게 해주는 데이터 수집 도구이다.
- requests (인터넷 통신 앱) : 파이썬이 수집한 데이터를 인터넷망을 통해 텔레그램 봇과 노션 데이터베이스로 쏘아 보낼 수 있게 해주는 통신 연결 도구이다.
- pip 또는 py -m pip : 앱을 다운로드해 주는 '앱스토어 프로그램 자체'의 이름이다.
이제 아래 사항을 차근 차근 실행해보자.
(1) 이 글의 1편인 [주식 데이터 자동 기록 기초 EP01]에서 바탕화면에 만들어 놓은 'blog_bot' 폴더를 연다.
(2) 폴더 안 상단 주소창에 'CMD' 라고 입력해 코드를 넣을 창을 불러온다.
📌 아래 (3)번 과정에서 실패라면 (4)번 과정을 해봐야 한다. 필자의 경우 (4)번까지 시도해서 성공했다.
(3) 새롭게 열린 검은색 CMD 창에 아래의 라이브러리 설치 명령어를 입력하고 엔터를 누른다.
pip install yfinance requests
'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. ➡ 실패
성공이라면 아래와 같은 코드들이 나와야 한다.
Collecting yfinance Downloading yfinance-0.2.38-py2.py3-none-any.whl (74 kB) Collecting requests Downloading requests-2.31.0-py3-none-any.whl (62 kB) ... (중략) ... Installing collected packages: requests, yfinance Successfully installed requests-2.31.0 yfinance-0.2.38
(4) 나의 경우 실패였다. 그래서 아래와 같은 코드를 다시 복사해 붙여넣기 후 엔터를 눌렀다.
py -m pip install yfinance requests
중간에 WARNING: The script ...이라는 글도 나오는데 결론적으로 하단에 Successfully installed 이라고 되어 있으면 성공인거다.
3. 자동화 코드를 작성할 파이썬 파일(.py) 만들기
파이썬 파일 만들기 (야후 파이낸스)
💡아래 코드는 야후 파이낸스 전산망에 직접 접속하여 >한화오션의 현재가를 실시간으로 수집해오라고 지시하는 명령어이다.
import yfinance as yf
# 한화오션 종목코드 (야후 파이낸스 기준은 뒤에 .KS를 붙인다)
ticker = "042660.KS"
stock = yf.Ticker(ticker)
# 최근 1일간의 거래 데이터 수집
hist = stock.history(period="1d")
if not hist.empty:
# 가장 최근 종가(현재가)를 정수형으로 가져오기
current_price = int(hist['Close'].iloc[-1])
print(f"📊 한화오션 현재가 수집 성공: {current_price}원")
else:
print("❌ 데이터 수집 실패")
(11) 저장이 완료되었다면 메모장을 닫고, 아까 라이브러리를 설치할 때 열어두었던(3번) 검은색 CMD 창(터미널) 화면으로 돌아간다. 코드를 넣었던 검은색 창을 닫았다면 다시 blog_bot 폴더 주소창에 다시 'CMD'를 입력해서 새 창을 열어도 된다.
(12) CMD 창에 방금 만든 파이썬 파일을 실행하기 위해 아래의 명령어를 입력하고 엔터를 누른다.
py master_bot.py
(13) 아래와 같은 문장이 뜬다면 성공이다. (금액은 다를 수 있다.)
📊 한화오션 현재가 수집 성공: 118100원 ➡ 성공
야후 파이낸스로 한화오션의 현재가를 컴퓨터로 가져오는 것까지 성공했으니, 이제 이 값을 텔레그램 앱으로 쏘아 보내는 단계를 적용할것이다.
4. 수집한 주가 데이터를 텔레그램으로 전송하기
파이썬이 혼자 알고 있는 주가 정보를 인터넷망을 통해 텔레그램 서버로 전송하려면 아까 1장에서 설치했던 통신 앱(requests)을 코드에 추가로 장착해야 한다.
(14) 만들어 놓은 blog_bot 폴더 안 상단의 주소창에 'CMD'입력하고 엔터를 누른 후 검은색 명령 프롬프트 창을 불러온다.
(15) 아래 코드를 복사해 붙여넣기 한 후 엔터를 누른다.
code .
'code'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. ➡ 실패
위와 같이 에러가 뜨더라도 당황할 필요 없다. 윈도우 시작 메뉴나 바탕화면에서 VS Code를 직접 찾아서 실행해 주면 된다.
VS Code 설치하기
(16) 바탕화면 작업표시줄의 윈도우 아이콘 클릭한다.
(17) 상단 검색창에 vscode 을 입력 해 설치가 되어 있는지 확인한다. 필자의 경우 설치되어 있지 않아 설치해야 했다.
(18) 만약 위와 같은 에러 메시지가 나타났다면, 컴퓨터에 코딩 편집기인 'VS Code'가 설치되어 있지 않기 때문이다. 당황하지 말고 아래의 순서대로 간단하게 설치를 먼저 진행하자. 만약 검색이 귀찮다면 아래의 다운로드 링크 버튼을 통해 공식 홈페이지로 바로 진입해도 된다.
✅ Visual Studio Code 실행
(25) 팝업창이 닫히면 왼쪽 탐색기 영역에 내 작업실인 blog_bot 폴더 이름이 정상적으로 표시된다.
파이썬 파일 생성 및 통신 모듈 장착
(30) 1행 : import requests 입력 후 엔터를 누른다.
import requests
텔레그램 수신 테스트
⚠️ 파이썬에서 문자 입력 시 반드시 값 좌우에 작은따옴표(' ')를 붙여주어야 오류가 나지 않는다.
(31) 2행 : BOT_TOKEN = '내 토큰 값'을 입력한다. (텔레그램)
(32) 3행 : CHAT_ID = '내 ID 값'을 입력한다. (텔레그램)
아래 코드를 복사해 본인의 토큰과 chat id를 넣어 2행과 3행에 붙여넣기 해도 된다.
BOT_TOKEN = '여기_안에_본인의_봇_토큰을_넣으세요' CHAT_ID = '여기_안에_본인의_chat_id를_넣으세요'
(33) 한 줄을 띄워 5행에 아래 코드를 복사해 붙여넣기 한 후 엔터를 누른다.
def send_telegram_message(message): url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage" payload = { 'chat_id': CHAT_ID, 'text': message } response = requests.post(url, json=payload) return response
(34) 13행 : 엔터로 한 칸 비워둔다.
(35) 14행 : 아래 코드를 복사해 붙여넣기 한 후 엔터를 누른다.
⚠️ [주의] 들여쓰기(앞 공백) 없이 맨 앞으로 바짝 붙여서 붙여넣기 해야 한다.
send_telegram_message("🚀파이썬에서 보낸 텔레그램 테스트 메시지입니다!")
(36) 저장하기 위해 Ctrl + S를 누른다.
(37) 혹시 경로를 설정해야 한다면 우리가 계속 사용하던 'blog_bot' 폴더 안에 이미 만들어진 'telegram_bot.py' 파일에 덮어쓰듯 저장하는 것이다.
💡 VS Code 코드 저장 여부 확인하는 방법
- 상단 탭 모양 확인 : 파일 이름 오른쪽 기호를 보면 현재 저장 상태를 바로 알 수 있다.
- 하얀 동그라미( ● ) : 코드가 수정되었으나 아직 컴퓨터에 저장되지 않은 상태를 의미한다.
- X 표시 모양 : 저장이 완벽하게 완료된 상태이다. 키보드 단축키 Ctrl + S를 누르면 동그라미가 X로 바뀐다.
(38) 이제 프로그램 실행을 위해 VS Code 우측 상단에 있는 ▶ 모양의 재생 버튼을 클릭한다.
📦 함께 보면 좋은 주식 데이터 자동화 기초 시리즈
자동화 시스템 구축의 뼈대가 되는
파이썬 기초 환경 설정 및 핵심 채널 연동 히스토리입니다.
#주식자동화 #파이썬기초 #텔레그램봇 #DART공시알림 #VSCode사용법 #주식프로그래밍 #오픈다트 #개발일지
댓글
댓글 쓰기