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 & 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.
🤝 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)
📜 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.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.2.0-py3-none-any.whl
(226.3 kB
view details)
File details
Details for the file sayou_stock-0.2.0.tar.gz.
File metadata
- Download URL: sayou_stock-0.2.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 |
fdfb009d3b24f2c018eb87f4d881a7098e1925e00cd1627d2dea9a58256ba24d
|
|
| MD5 |
5676db79530dff4c613791c6c03cab66
|
|
| BLAKE2b-256 |
a60a1b684e6eb2c234601d910662e4ae0d3af19b5723765d187f862309c2667b
|
File details
Details for the file sayou_stock-0.2.0-py3-none-any.whl.
File metadata
- Download URL: sayou_stock-0.2.0-py3-none-any.whl
- Upload date:
- Size: 226.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 |
74277fbabc8f2904fc6ec3342ac1fa4878f6e6209ced680bba3c513771b0e150
|
|
| MD5 |
cea3a72a39c2a9cabc1320cf19b234d2
|
|
| BLAKE2b-256 |
00a1d72bec496ccd09ef492d4786e7c08eeb9069796949bfd7a3942da0bce275
|