CSB261 commited on
Commit
ef193bf
ยท
verified ยท
1 Parent(s): 2aa5925

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -7
app.py CHANGED
@@ -4,6 +4,8 @@ from bs4 import BeautifulSoup
4
  import pandas as pd
5
  import re
6
  import gradio as gr
 
 
7
 
8
  # ๋„ค์ด๋ฒ„ ์ฆ๊ถŒ URL
9
  url = "https://finance.naver.com/sise/sise_rise.naver?sosok=1"
@@ -39,9 +41,10 @@ def scrape_naver_finance():
39
 
40
  # '์ƒํ•œ๊ฐ€', '์ƒ์Šน' ๋“ฑ์˜ ๊ธ€์”จ ์ œ๊ฑฐ
41
  change_cleaned = re.sub(r'[^\d-]', '', change).strip()
 
42
 
43
  # ๊ฐ ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ
44
- data.append([rank, name, price, change_cleaned, rate, volume])
45
 
46
  # DataFrame์œผ๋กœ ๋ณ€ํ™˜
47
  df = pd.DataFrame(data, columns=["์ˆœ์œ„", "์ข…๋ชฉ๋ช…", "ํ˜„์žฌ๊ฐ€", "์ „์ผ๋น„", "๋“ฑ๋ฝ๋ฅ ", "๊ฑฐ๋ž˜๋Ÿ‰"])
@@ -55,13 +58,25 @@ def scrape_naver_finance():
55
  save_path = os.path.join(save_dir, "naver_top_stocks.xlsx")
56
  df.to_excel(save_path, index=False)
57
 
58
- return df
 
 
 
59
 
60
- # ๊ทธ๋ผ๋””์˜ค ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜
 
 
 
 
 
 
 
 
 
61
  def get_top_stocks():
62
- df = scrape_naver_finance()
63
- return df
64
 
65
- # Gradio ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ
66
- iface = gr.Interface(fn=get_top_stocks, inputs=None, outputs="dataframe", title="๋„ค์ด๋ฒ„ ์ฆ๊ถŒ ์ƒ์Šน TOP ์ข…๋ชฉ")
67
  iface.launch()
 
4
  import pandas as pd
5
  import re
6
  import gradio as gr
7
+ from openpyxl import load_workbook
8
+ from openpyxl.styles import Font
9
 
10
  # ๋„ค์ด๋ฒ„ ์ฆ๊ถŒ URL
11
  url = "https://finance.naver.com/sise/sise_rise.naver?sosok=1"
 
41
 
42
  # '์ƒํ•œ๊ฐ€', '์ƒ์Šน' ๋“ฑ์˜ ๊ธ€์”จ ์ œ๊ฑฐ
43
  change_cleaned = re.sub(r'[^\d-]', '', change).strip()
44
+ rate_cleaned = re.sub(r'[^\d.-]', '', rate).strip()
45
 
46
  # ๊ฐ ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ
47
+ data.append([rank, name, price, change_cleaned, rate_cleaned, volume])
48
 
49
  # DataFrame์œผ๋กœ ๋ณ€ํ™˜
50
  df = pd.DataFrame(data, columns=["์ˆœ์œ„", "์ข…๋ชฉ๋ช…", "ํ˜„์žฌ๊ฐ€", "์ „์ผ๋น„", "๋“ฑ๋ฝ๋ฅ ", "๊ฑฐ๋ž˜๋Ÿ‰"])
 
58
  save_path = os.path.join(save_dir, "naver_top_stocks.xlsx")
59
  df.to_excel(save_path, index=False)
60
 
61
+ # ์—‘์…€ ํŒŒ์ผ์— ์Šคํƒ€์ผ ์ถ”๊ฐ€ (์ƒ์Šน๋ฅ ์ด 20% ์ด์ƒ์ด๋ฉด ์ข…๋ชฉ๋ช…์„ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œ)
62
+ workbook = load_workbook(save_path)
63
+ sheet = workbook.active
64
+ red_font = Font(color="FF0000") # ๋นจ๊ฐ„์ƒ‰ ๊ธ€์”จ์ฒด ์„ค์ •
65
 
66
+ for row in range(2, sheet.max_row + 1):
67
+ rate_value = sheet.cell(row=row, column=5).value
68
+ if rate_value and float(rate_value) >= 20.0:
69
+ sheet.cell(row=row, column=2).font = red_font # ์ข…๋ชฉ๋ช… ์ปฌ๋Ÿผ์„ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์„ค์ •
70
+
71
+ workbook.save(save_path)
72
+
73
+ return save_path
74
+
75
+ # ์—‘์…€ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งํฌ ์ œ๊ณต
76
  def get_top_stocks():
77
+ file_path = scrape_naver_finance()
78
+ return file_path
79
 
80
+ # Gradio ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ (๋‹ค์šด๋กœ๋“œ ๋งํฌ ์ œ๊ณต)
81
+ iface = gr.Interface(fn=get_top_stocks, inputs=None, outputs="file", title="๋„ค์ด๋ฒ„ ์ฆ๊ถŒ ์ƒ์Šน TOP ์ข…๋ชฉ")
82
  iface.launch()