Sayou Stock Package for Financial Data from SEC, FnGuide, Naver, OpenDART, Yahoo
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 & Fundamentals fromFnGuide.NaverCrawler: RetrievesNaverMarket News usingNaverAPI and Crawls Market Data fromNaver.OpenDartCrawler: RetrievesOpenDartAPI usingOpenDartAPI.YahooCrawler: RetrievesYahoo FinanceAPI usingYahoo FinanceAPI.
🤝 Usage Example
Retrieve SEC EDGAR 10-K
from sayou.stock.edgar import EDGARCrawler
crawler = EDGARCrawler(user_agent="Sayouzone sjkim@sayouzone.com")
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 FnGuide's Company Information
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 Naver's Company 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 OpenDart's Company Information
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 Yahoo's Company Information
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)
📜 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.1.0.tar.gz
(3.4 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.1.0-py3-none-any.whl
(197.3 kB
view details)
File details
Details for the file sayou_stock-0.1.0.tar.gz.
File metadata
- Download URL: sayou_stock-0.1.0.tar.gz
- Upload date:
- Size: 3.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
376571497befe85e62254112e8e239c77cf38d42c330c7077ec2bb94ef70058d
|
|
| MD5 |
377b70522827377652e7f67f0601004e
|
|
| BLAKE2b-256 |
c819f7129eef371a694e4952bdcdcb8a9b31134fd9a371ce7481395aad07e2d4
|
File details
Details for the file sayou_stock-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sayou_stock-0.1.0-py3-none-any.whl
- Upload date:
- Size: 197.3 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 |
6d3d367930dd55a1c5ea64697c5a40e82abe9f1c06848e3a606790a9f6eead56
|
|
| MD5 |
da5e0a08cb58a66303fc894541cab2c3
|
|
| BLAKE2b-256 |
e4b61ab4f0d266de6cff413bcef05ab1e0bc16397a9c5ffd09b3aabd89489759
|