Sayou Stock Package for Financial Data from SEC, FnGuide, Naver, OpenDART, Yahoo, Korean Investment Securities
Project description
Sayou Stock
📦 Installation
sayou-stock is automatically installed when you install any Sayou library.
pip install sayou-stock
🔑 Key Components
EDGARCrawler: Retrieves10-K, 10-Q, 8-K, 13F, DEF 14Adocuments usingSEC EDGARAPI.FnGuideCrawler: Crawls Company Information & Financial Statements fromFnGuide.NaverCrawler: Retrieves Market News usingNaverAPI and Crawls Market Data fromNaver.OpenDartCrawler: Retrieves Company Information & Financial Statements usingOpenDartAPI.YahooCrawler: Retrieves Company Information & Market Data usingYahoo FinanceAPI.KisratingCrawler: Crawls statistics spread fromKisrating.
🤝 Usage Examples
Retrieve 10-K document from SEC EDGAR
from sayou.stock.edgar import EDGARCrawler
user_agent = "YOUR_NAME YOUR_EMAIL"
crawler = EDGARCrawler(user_agent=user_agent)
ticker = "AAPL"
# Retrieve CIK by Ticker
cik = crawler.fetch_cik_by_ticker(ticker)
# EDGAR 10-K Annual Report
filings = crawler.fetch_filings(cik, doc_type="10-K", count=1)
data = crawler.extract_10k(cik, filings[0].document_url, filings[0].accession_number)
# EDGAR 10-Q Quarterly Report
filings = crawler.fetch_filings(cik, doc_type="10-Q", count=1)
data = crawler.extract_10q(cik, filings[0].document_url, filings[0].accession_number)
# EDGAR 8-K Current Report
filings = crawler.fetch_filings(cik, doc_type="8-K", count=1)
data = crawler.extract_8k(cik, filings[0].document_url, filings[0].accession_number)
# EDGAR 13F Institutional Holdings
filings = crawler.fetch_filings(cik, doc_type="13F", count=1)
data = crawler.extract_13f(cik, filings[0].document_url, filings[0].accession_number)
# EDGAR DEF 14A Proxy Statement
filings = crawler.fetch_filings(cik, doc_type="DEF 14A", count=1)
data = crawler.extract_def14a(cik, filings[0].document_url, filings[0].accession_number)
Retrieve Company Information from FnGuide
from sayou.stock.fnguide import FnGuideCrawler
stock = "005930"
crawler = FnGuideCrawler()
# Company Finance
data = crawler.finance(stock)
print(data)
# Company Information
data = crawler.company(stock)
print(data)
# Company Finance Ratio
data = crawler.finance_ratio(stock)
print(data)
# Company Investment
data = crawler.invest(stock)
print(data)
# Company Consensus
data = crawler.consensus(stock)
print(data)
Retrieve Company News from Naver News
from sayou.stock.naver import NaverCrawler
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
crawler = NaverCrawler(client_id, client_secret)
# Naver Category News
articles = crawler.category_news()
print(articles)
# Naver company's News
articles = crawler.news(query="삼성전자", max_articles=10)
print(articles)
Retrieve Company Information from OpenDart
from sayou.stock.opendart import OpenDartCrawler
DART_API_KEY = "YOUR_DART_API_KEY"
stock = "005930"
crawler = OpenDartCrawler(api_key=DART_API_KEY)
# Search corp_code from Company Name or Stock Code
corp_code = crawler.fetch_corp_code(stock)
print(corp_code)
# Single Company's Main Accounts
api_type = "단일회사 주요계정"
last_year = 2024
data = crawler.finance(corp_code, last_year, api_type=api_type)
status = data.get("status", "")
list = data.get("list", [])
if status == "000" and len(list) > 0:
print(f"\n{api_type} {last_year}년 ({corp_name}, {corp_code})")
df = pd.DataFrame(list)
print(df)
# Multiple Companies' Main Accounts
api_type = "다중회사 주요계정"
data = crawler.finance(corp_code, last_year, api_type=api_type)
status = data.get("status", "")
list = data.get("list", [])
if status == "000" and len(list) > 0:
print(f"\n{api_type} {last_year}년 ({corp_name}, {corp_code})")
df = pd.DataFrame(list)
print(df)
# Single Company's Total Financial Statements (Linked)
api_type = "단일회사 전체 재무제표"
data = crawler.finance(corp_code, last_year, api_type=api_type)
status = data.get("status", "")
list = data.get("list", [])
if status == "000" and len(list) > 0:
print(f"\n{api_type} {last_year}년 ({corp_name}, {corp_code})")
df = pd.DataFrame(list)
print(df)
Retrieve Company Information from Yahoo Finance
from sayou.stock.yahoo import YahooCrawler
ticker = "AAPL"
crawler = YahooCrawler()
# Company Calendar
data = crawler.calendar(ticker)
print(data)
# Earning Estimate
data = crawler.earnings_estimate(ticker)
print(data)
# Revenue Estimate
data = crawler.revenue_estimate(ticker)
print(data)
# Earnings History
data = crawler.earnings_history(ticker)
print(data)
Retrieve statistics spread from Kisrating
from sayou.stock.kisrating import KisratingCrawler
crawler = KisratingCrawler()
# Statistics Spread
data = crawler.statistics()
print("\nYield")
print(data.yield_df)
print("\nSpread")
print(data.spread_df)
📜 License
Apache 2.0 License © 2025 Sayouzone
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sayou_stock-0.2.11.tar.gz
(3.5 MB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
sayou_stock-0.2.11-py3-none-any.whl
(305.0 kB
view details)
File details
Details for the file sayou_stock-0.2.11.tar.gz.
File metadata
- Download URL: sayou_stock-0.2.11.tar.gz
- Upload date:
- Size: 3.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53af6b281b6499339d1183ec01d84474a679446f70216f24910eded726ad5d34
|
|
| MD5 |
2c82df1e9b8c54ee675691b00f9d365b
|
|
| BLAKE2b-256 |
e5c6f2d36c7ab4d55fd22fa7671a6935a5d69e931a82823412d47dab569c139d
|
File details
Details for the file sayou_stock-0.2.11-py3-none-any.whl.
File metadata
- Download URL: sayou_stock-0.2.11-py3-none-any.whl
- Upload date:
- Size: 305.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a89fef07d2cbb6c34df69be3d4a509a89d3f16483cbd49c3a8a807aafd6aa995
|
|
| MD5 |
ec9b9651cec5afabc18b1eeff74915ea
|
|
| BLAKE2b-256 |
17ed43be54b13a39b3b324e78030291e359c33f6318faa6cce2d30c8a18df5e5
|