printf("ho_tari\n");
카카오톡으로 주식 시세 메세지 보내기 (python) 본문
<stockpricesendtokakaotalk.py>
import json
import requests
import time
from bs4 import BeautifulSoup
# json 라이브러리는 JSON 데이터를 다루기 위해 사용
# requests 라이브러리는 웹페이지에서 데이터를 가져오고 카카오톡 메시지를 전송하기 위해 사용
# time 라이브러리는 프로그램을 일정 시간 동안 일시 중지하기 위해 사용
# beautifulsoup 라이브러리는 HTML 파싱을 위해 사용
def sendToMeMessage(text): # 주어진 텍스트 메세지를 카카오톡으로 보내는 함수
header = {"Authorization":"Bearer "+ KAKAO_TOKEN}
# authorization 헤더에는 카카오톡 API 토큰이 포함
url = "https://kapi.kakao.com/v2/api/talk/memo/default/send"
post = {
"object_type":"text",
"text":text,
"link":{
"web_url":"https://developers.kakao.com",
"mobile_web_url":"https://developers.kakao.com"
},
"button_title":"immediately confirm"
}
# post 딕셔너리는 메시지의 내용과 링크 정보가 설정
data = {"template_object":json.dumps(post)}
# data 딕셔너리는 template_object 키를 사용하여 메시지 데이터 JSON 형식으로 변환
return requests.post(url,headers=header,data=data)
# requests.post() 함수를 사용하여 메시지를 카카오톡으로 전송
KAKAO_TOKEN = "카카오톡 토큰" # 사람마다 토큰 다 다름, 카카오톡 API 토큰 설정
def get_price(com_code):
# 네이버 금융 웹페이지에서 주식 가격 정보를 가져오는 함수
# 주어진 종목 코드(com_code)를 사용하여 해당 종목의 현재 주식 가격을 가져온다
url = "https://finance.naver.com/item/main.nhn?code=" + com_code
result = requests.get(url, headers={'User-agent':'Mozilla/5.0'})
bs_obj = BeautifulSoup(result.content,"html.parser")
no_today = bs_obj.find("p",{"class":"no_today"})
blind_now=no_today.find("span",{"class":"blind"})
return blind_now.text
try:
while True:
# 무한 루프를 사용하여 주식 가격 정보를 가져와서 카카오톡 메시지를 주기적으로 전송
# time.sleep(60.0)은 60초(1분)마다 한 번 실행
text1 = "삼성전자의 현재 가격은 " + get_price("035720") + "입니다."
print(sendToMeMessage(text1).text)
text2 = "카카오의 현재 가격은 " + get_price("035720") + "입니다."
print(sendToMeMessage(text2).text)
text3 = "네이버의 현재 가격은 " + get_price("035720") + "입니다."
print(sendToMeMessage(text3).text)
time.sleep(60.0)
except KeyboardInterrupt:
pass
<compile 결과>
'Raspberry Pi' 카테고리의 다른 글
SWITCH_LED_INTERRUPT (0) | 2023.10.05 |
---|---|
LED_ON_OFF (0) | 2023.10.05 |
카카오톡으로 일기예보 메세지 보내기 (python) (0) | 2023.09.22 |
일기예보를 알려주는 알리미 (python) (0) | 2023.09.22 |
주식 시세를 알려주는 알리미 (python) (0) | 2023.09.22 |