File size: 1,455 Bytes
fd35c9f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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()