naverstock_1 / app.py
AIRider's picture
Create app.py
fd35c9f verified
raw
history blame
1.46 kB
import requests
from bs4 import BeautifulSoup
import pandas as pd
import gradio as gr
# URL ์„ค์ •
KOSDAQ_URL = "https://finance.naver.com/sise/sise_rise.naver?sosok=1"
def scrape_kosdaq_info():
# ์š”์ฒญ ๋ฐ HTML ํŒŒ์‹ฑ
response = requests.get(KOSDAQ_URL)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
# ๋ฐ์ดํ„ฐ ์ถ”์ถœ
rows = soup.select("table.type_2 tbody tr")
data = []
for row in rows:
# ์ข…๋ชฉ๋ช… ์ถ”์ถœ
name_tag = row.select_one("a.tltle")
if name_tag:
name = name_tag.text.strip()
# ์ข…๋ชฉ ์ฝ”๋“œ ์ถ”์ถœ
code = name_tag["href"].split("code=")[-1]
data.append({"์ข…๋ชฉ๋ช…": name, "์ข…๋ชฉ์ฝ”๋“œ": code})
# DataFrame์œผ๋กœ ๋ณ€ํ™˜
df = pd.DataFrame(data)
return df
def display_kosdaq_info():
# ๋ฐ์ดํ„ฐ ์Šคํฌ๋ž˜ํ•‘ ๋ฐ ์ถœ๋ ฅ
df = scrape_kosdaq_info()
return df
# ๊ทธ๋ผ๋””์˜ค UI ์ •์˜
def kosdaq_ui():
def get_table():
# ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
df = scrape_kosdaq_info()
return df
interface = gr.Interface(
fn=get_table,
inputs=None,
outputs="dataframe",
title="์ฝ”์Šค๋‹ฅ ์ข…๋ชฉ ์ •๋ณด ์Šคํฌ๋ž˜ํผ",
description="๋„ค์ด๋ฒ„ ์ฆ๊ถŒ ์‚ฌ์ดํŠธ์—์„œ ์ฝ”์Šค๋‹ฅ ์ข…๋ชฉ ์ •๋ณด๋ฅผ ์Šคํฌ๋ž˜ํ•‘ํ•˜์—ฌ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค."
)
interface.launch()
# ์‹คํ–‰
if __name__ == "__main__":
kosdaq_ui()