طرق الزحف إلى نظام الإفصاح الإلكتروني DART للاستثمار الكمي في الأسهم

جدول المحتويات

  • 1. تثبيت المكتبات المطلوبة
  • 2. مثال على البحث عن إفصاح DART والزحف إلى البيانات المالية
  • 3. شرح الكود
هذا المنشور هو جزء من أنشطة برنامج شركاء كوبانغ، ويتم استلام عمولة وفقًا لذلك.

طرق الزحف إلى نظام الإفصاح الإلكتروني DART للاستثمار الكمي في الأسهم

KissCuseMe
2025-03-11
1

سأشرح خطوة بخطوة كيفية الزحف إلى بيانات البيان المالي من نظام الإفصاح الإلكتروني DART. نستخدم مكتبات requests و BeautifulSoup و pandas الخاصة بـ Python. ومع ذلك، يرجى ملاحظة تغييرات هيكل موقع الويب عند الاستخدام الفعلي، ويجب توخي الحذر لأن الطلبات المفرطة قد تثقل كاهل الخادم.


1. تثبيت المكتبات المطلوبة

pip install requests beautifulsoup4 pandas openpyxl

2. مثال على البحث عن إفصاح DART والزحف إلى البيانات المالية

import requests
from bs4 import BeautifulSoup
import pandas as pd
from urllib.parse import urljoin

<br/>

# Search Criteria (e.g., Samsung Electronics (005930) Annual Report)
COMPANY_CODE = "005930"  # Stock Code
START_DATE = "20230101"  # Search Start Date (YYYYMMDD)
END_DATE = "20231231"    # Search End Date (YYYYMMDD)
REPORT_TYPE = "A001"     # A001: Annual Report, A002: Semi-Annual Report, A003: Quarterly Report

<br/>

# DART Disclosure Search URL
SEARCH_URL = "http://dart.fss.or.kr/dsab001/search.ax"

def get_report_list():
    """Function to fetch the list of DART disclosure reports"""
    params = {
        "currentPage": 1,
        "maxResults": 10,
        "businessCode": COMPANY_CODE,
        "startDate": START_DATE,
        "endDate": END_DATE,
        "reportName": REPORT_TYPE
    }
    response = requests.get(SEARCH_URL, params=params)
    soup = BeautifulSoup(response.text, 'html.parser')
    return soup.select(".table_list tr")[1:]  # Extract rows excluding the header

def extract_excel_url(report_url):
    """Function to extract the Excel file URL from the report page"""
    response = requests.get(report_url)
    soup = BeautifulSoup(response.text, 'html.parser')
    excel_link = soup.select_one("a[href*='download.xbrl']")
    if excel_link:
        return urljoin(report_url, excel_link['href'])
    return None

def download_excel(url):
    """Function to download the Excel file and convert it into a DataFrame"""
    response = requests.get(url)
    with open("temp.xlsx", "wb") as f:
        f.write(response.content)
    return pd.read_excel("temp.xlsx", engine='openpyxl')

<br/>

# Main Execution
if __name__ == "__main__":
    reports = get_report_list()
    for idx, report in enumerate(reports[:3]):  # Process up to 3 reports
        # Extract report title and link
        title = report.select_one("td:nth-child(3) a").text.strip()
        report_url = urljoin(SEARCH_URL, report.select_one("td:nth-child(3) a")['href'])
        
        print(f"[{idx+1}] Extracting data from {title}...")
        
        # Extract Excel file URL and download
        excel_url = extract_excel_url(report_url)
        if excel_url:
            df = download_excel(excel_url)
            print(df.head())  # Check the data
        else:
            print("Excel file not found.")

3. شرح الكود

  • إعداد شروط البحث:
    • COMPANY_CODE: رمز السهم (مثال: Samsung Electronics=005930)
    • REPORT_TYPE: A001 (سنوي)، A002 (نصف سنوي)، A003 (ربع سنوي)
    • يقتصر نطاق التاريخ على START_DATE و END_DATE.
  • الزحف إلى قائمة التقارير:
    • استدعاء DART Disclosure Search API لاسترداد قائمة التقارير.
    • استخراج عنوان التقرير والرابط بعد تحليل HTML باستخدام BeautifulSoup.
  • استخراج ملف Excel:
    • ابحث عن رابط ملف Excel بتنسيق XBRL في صفحة كل تقرير وقم بتنزيله.
    • قم بتحويل ملف Excel إلى DataFrame عن طريق قراءته باستخدام pandas.
  • احتياطات
    • معالجة المحتوى الديناميكي: قد يتم تحميل بعض الصفحات ديناميكيًا بواسطة JavaScript. في هذه الحالة، قد تحتاج إلى استخدام Selenium.
    • سلامة البيانات: نظرًا لأن بنية ملف Excel قد تختلف حسب الشركة، يجب إضافة منطق تعيين الأعمدة.
    • القيود القانونية: يجب عليك الالتزام بشروط استخدام DART عند الزحف إلى الويب.

استنادًا إلى هذا الرمز، يمكنك تنفيذ معالجة بيانات إضافية ومنطق تحليل كمي.

الأسهم
الكمي
الاستثمار
الزحف
دارت

0


شروط الخدمةسياسة الخصوصيةالدعم
© 2025
ليتني كنت أعلم من قبل
All rights reserved.