✨ feat: .env 파일 로드 및 Slack 웹훅 알림 지원 추가
Some checks failed
ci / ci (22, ubuntu-latest) (push) Failing after 2m48s
Some checks failed
ci / ci (22, ubuntu-latest) (push) Failing after 2m48s
This commit is contained in:
@@ -14,7 +14,15 @@ import sys
|
|||||||
import time
|
import time
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
import urllib.request
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
# .env 파일 자동 로드
|
||||||
|
try:
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
load_dotenv()
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
from selenium import webdriver
|
from selenium import webdriver
|
||||||
from selenium.webdriver.common.by import By
|
from selenium.webdriver.common.by import By
|
||||||
from selenium.webdriver.chrome.service import Service
|
from selenium.webdriver.chrome.service import Service
|
||||||
@@ -32,6 +40,7 @@ CONFIG = {
|
|||||||
"BUY_COUNT": 1, # 구매 게임 수 (1~10)
|
"BUY_COUNT": 1, # 구매 게임 수 (1~10)
|
||||||
"HEADLESS": True, # True: 브라우저 창 숨김, False: 브라우저 창 표시
|
"HEADLESS": True, # True: 브라우저 창 숨김, False: 브라우저 창 표시
|
||||||
"LOG_FILE": "lotto_log.json",
|
"LOG_FILE": "lotto_log.json",
|
||||||
|
"SLACK_WEBHOOK_URL": os.environ.get("SLACK_WEBHOOK_URL", ""),
|
||||||
}
|
}
|
||||||
|
|
||||||
# 로깅 설정
|
# 로깅 설정
|
||||||
|
|||||||
37
lotto_log.json
Normal file
37
lotto_log.json
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"date": "2026-03-15 12:46:23",
|
||||||
|
"status": "error",
|
||||||
|
"error": "Message: no such element: Unable to locate element: {\"method\":\"css selector\",\"selector\":\"[id=\"userId\"]\"}\n (Session info: chrome=145.0.7632.160); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#nosuchelementexception\nStacktrace:\n0 chromedriver 0x00000001028816b4 cxxbridge1$str$ptr + 3127600\n1 chromedriver 0x0000000102879a50 cxxbridge1$str$ptr + 3095756\n2 chromedriver 0x000000010235656c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 75432\n3 chromedriver 0x000000010239f864 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 375200\n4 chromedriver 0x00000001023de620 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 632668\n5 chromedriver 0x0000000102393b9c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 326872\n6 chromedriver 0x0000000102840680 cxxbridge1$str$ptr + 2861308\n7 chromedriver 0x0000000102843dd4 cxxbridge1$str$ptr + 2875472\n8 chromedriver 0x0000000102825a7c cxxbridge1$str$ptr + 2751736\n9 chromedriver 0x0000000102844658 cxxbridge1$str$ptr + 2877652\n10 chromedriver 0x0000000102815ffc cxxbridge1$str$ptr + 2687608\n11 chromedriver 0x0000000102868d78 cxxbridge1$str$ptr + 3026932\n12 chromedriver 0x0000000102868ef4 cxxbridge1$str$ptr + 3027312\n13 chromedriver 0x00000001028796a8 cxxbridge1$str$ptr + 3094820\n14 libsystem_pthread.dylib 0x00000001929cbc08 _pthread_start + 136\n15 libsystem_pthread.dylib 0x00000001929c6ba8 thread_start + 8\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-03-15 12:50:45",
|
||||||
|
"status": "error",
|
||||||
|
"error": "Message: invalid element state\n (Session info: chrome=145.0.7632.160)\nStacktrace:\n0 chromedriver 0x00000001028a96b4 cxxbridge1$str$ptr + 3127600\n1 chromedriver 0x00000001028a1a50 cxxbridge1$str$ptr + 3095756\n2 chromedriver 0x000000010237e370 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 74924\n3 chromedriver 0x00000001023bf528 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 341604\n4 chromedriver 0x00000001023bd25c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 332696\n5 chromedriver 0x0000000102406620 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 632668\n6 chromedriver 0x00000001023bbb9c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 326872\n7 chromedriver 0x0000000102868680 cxxbridge1$str$ptr + 2861308\n8 chromedriver 0x000000010286bdd4 cxxbridge1$str$ptr + 2875472\n9 chromedriver 0x000000010284da7c cxxbridge1$str$ptr + 2751736\n10 chromedriver 0x000000010286c658 cxxbridge1$str$ptr + 2877652\n11 chromedriver 0x000000010283dffc cxxbridge1$str$ptr + 2687608\n12 chromedriver 0x0000000102890d78 cxxbridge1$str$ptr + 3026932\n13 chromedriver 0x0000000102890ef4 cxxbridge1$str$ptr + 3027312\n14 chromedriver 0x00000001028a16a8 cxxbridge1$str$ptr + 3094820\n15 libsystem_pthread.dylib 0x00000001929cbc08 _pthread_start + 136\n16 libsystem_pthread.dylib 0x00000001929c6ba8 thread_start + 8\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-03-15 12:52:02",
|
||||||
|
"status": "error",
|
||||||
|
"error": "Message: invalid element state\n (Session info: chrome=145.0.7632.160)\nStacktrace:\n0 chromedriver 0x0000000102d096b4 cxxbridge1$str$ptr + 3127600\n1 chromedriver 0x0000000102d01a50 cxxbridge1$str$ptr + 3095756\n2 chromedriver 0x00000001027de370 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 74924\n3 chromedriver 0x000000010281f528 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 341604\n4 chromedriver 0x000000010281d25c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 332696\n5 chromedriver 0x0000000102866620 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 632668\n6 chromedriver 0x000000010281bb9c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 326872\n7 chromedriver 0x0000000102cc8680 cxxbridge1$str$ptr + 2861308\n8 chromedriver 0x0000000102ccbdd4 cxxbridge1$str$ptr + 2875472\n9 chromedriver 0x0000000102cada7c cxxbridge1$str$ptr + 2751736\n10 chromedriver 0x0000000102ccc658 cxxbridge1$str$ptr + 2877652\n11 chromedriver 0x0000000102c9dffc cxxbridge1$str$ptr + 2687608\n12 chromedriver 0x0000000102cf0d78 cxxbridge1$str$ptr + 3026932\n13 chromedriver 0x0000000102cf0ef4 cxxbridge1$str$ptr + 3027312\n14 chromedriver 0x0000000102d016a8 cxxbridge1$str$ptr + 3094820\n15 libsystem_pthread.dylib 0x00000001929cbc08 _pthread_start + 136\n16 libsystem_pthread.dylib 0x00000001929c6ba8 thread_start + 8\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-03-15 12:53:12",
|
||||||
|
"status": "error",
|
||||||
|
"error": "Message: \n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-03-15 13:00:41",
|
||||||
|
"status": "error",
|
||||||
|
"error": "Message: invalid session id; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#invalidsessionidexception\nStacktrace:\n0 chromedriver 0x00000001011a96b4 cxxbridge1$str$ptr + 3127600\n1 chromedriver 0x00000001011a1a50 cxxbridge1$str$ptr + 3095756\n2 chromedriver 0x0000000100c7e370 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 74924\n3 chromedriver 0x0000000100cbaf08 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 323652\n4 chromedriver 0x0000000100ce3af4 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 490544\n5 chromedriver 0x0000000100ce2fcc _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 487688\n6 chromedriver 0x0000000100c4b620 chromedriver + 112160\n7 chromedriver 0x0000000101168680 cxxbridge1$str$ptr + 2861308\n8 chromedriver 0x000000010116bdd4 cxxbridge1$str$ptr + 2875472\n9 chromedriver 0x000000010114da7c cxxbridge1$str$ptr + 2751736\n10 chromedriver 0x000000010116c658 cxxbridge1$str$ptr + 2877652\n11 chromedriver 0x000000010113dffc cxxbridge1$str$ptr + 2687608\n12 chromedriver 0x0000000100c49314 chromedriver + 103188\n13 dyld 0x0000000192601d54 start + 7184\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-03-15 13:05:19",
|
||||||
|
"games": [],
|
||||||
|
"status": "completed_but_numbers_unknown"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"date": "2026-03-15 13:12:37",
|
||||||
|
"games": [],
|
||||||
|
"status": "completed_but_numbers_unknown"
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1 +1,2 @@
|
|||||||
selenium
|
selenium
|
||||||
|
python-dotenv
|
||||||
|
|||||||
Reference in New Issue
Block a user