반응형
SEC(미국 증권거래위원회) EDGAR 시스템에서 특정 기업의 최신 10-K 보고서 링크를 자동으로 가져오는 방법을 정리합니다. 이 과정에서는 Python의 requests와 BeautifulSoup 라이브러리를 활용하여 웹 스크래핑을 수행합니다.
1. SEC EDGAR에서 10-K 보고서 검색 개요
SEC EDGAR은 미국에 상장된 기업들의 재무 보고서(10-K, 10-Q 등)를 제공하는 공개 데이터베이스입니다. 특정 기업의 10-K 보고서를 찾으려면 다음 URL을 사용합니다:
https://www.sec.gov/cgi-bin/browse-edgar?CIK=<티커>&type=10-K&count=10&action=getcompany
예를 들어, 애플(AAPL)의 10-K 보고서를 검색하려면 다음과 같은 URL을 사용합니다:
https://www.sec.gov/cgi-bin/browse-edgar?CIK=AAPL&type=10-K&count=10&action=getcompany
이 페이지에서 "Documents" 링크를 클릭하면 해당 보고서의 세부 문서 페이지로 이동할 수 있습니다.
2. Python을 사용한 10-K 보고서 링크 자동 추출
2.1 필요한 라이브러리 설치
먼저 필요한 라이브러리를 설치합니다:
pip install requests beautifulsoup4
2.2 10-K 보고서 URL을 가져오는 Python 코드
아래 코드는 SEC EDGAR에서 특정 기업의 최신 10-K 보고서 링크를 자동으로 찾아 반환합니다.
import requests
from bs4 import BeautifulSoup
def get_latest_10k_url(ticker):
# SEC EDGAR 검색 페이지 URL
search_url = f"https://www.sec.gov/cgi-bin/browse-edgar?CIK={ticker}&type=10-K&count=10&action=getcompany"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 Edg/133.0.0.0",
"Referer": search_url
}
session = requests.Session()
session.headers.update(headers)
# SEC EDGAR 검색 페이지 요청
response = session.get(search_url)
soup = BeautifulSoup(response.text, "html.parser")
# "Documents" 버튼 찾기
doc_button = soup.find("a", string="Documents")
if not doc_button:
print(f"{ticker}의 10-K 보고서를 찾을 수 없습니다. (Documents 버튼 없음)")
return None
# "Documents" 페이지로 이동
docs_url = "https://www.sec.gov" + doc_button["href"]
response = session.get(docs_url)
soup = BeautifulSoup(response.text, "html.parser")
# "Document Format Files" 테이블 찾기
table = soup.find("table", {"summary": "Document Format Files"})
if not table:
print(f"{ticker}의 보고서 테이블을 찾을 수 없습니다.")
return None
latest_10k_url = None
for row in table.find_all("tr"):
cols = row.find_all("td")
# "10-K" 문서 찾기
if len(cols) > 1 and "10-K" in cols[1].text:
doc_link = cols[2].find("a")["href"]
latest_10k_url = "https://www.sec.gov" + doc_link
break
if latest_10k_url:
print(f"✅ 최신 10-K 보고서 링크: {latest_10k_url}")
return latest_10k_url
else:
print(f"⚠️ {ticker}의 최신 10-K 보고서를 찾을 수 없습니다.")
return None
# 애플(AAPL)의 최신 10-K 보고서 링크 가져오기
ticker = "AAPL"
latest_10k_url = get_latest_10k_url(ticker)
3. 코드 실행 결과 예시
위 코드를 실행하면 다음과 같은 결과가 출력됩니다:
✅ 최신 10-K 보고서 링크: https://www.sec.gov/ix?doc=/Archives/edgar/data/0000320193/000032019324000123/aapl-20240928.htm
이를 통해 애플(AAPL)의 최신 10-K 보고서 링크를 자동으로 가져올 수 있습니다.
4. 개선 및 확장 가능성
이 코드는 기본적인 기능을 수행하지만, 더 발전시킬 수 있습니다:
- 여러 기업을 한 번에 분석
- 10-Q(분기 보고서) 및 기타 보고서도 자동 수집
- NLP를 활용하여 보고서에서 중요한 정보 자동 추출
- Selenium을 이용하여 동적 크롤링 기능 추가
5. 결론
이제 Python을 사용하여 SEC EDGAR에서 최신 10-K 보고서를 자동으로 가져올 수 있습니다. 이 방법을 활용하면 투자 리서치, 기업 분석 및 데이터 수집을 자동화하는 데 유용할 것입니다.
혹시 추가적인 개선 사항이나 질문이 있다면 언제든지 알려주세요! 😊
반응형
'IT' 카테고리의 다른 글
이미지 센서 회로도 및 PCB 설계의 제약 조건과 신호/전원 무결성 고려 사항 (7) | 2025.03.12 |
---|---|
CMOS, BSI CMOS, Stacked CMOS, and Global Shutter (0) | 2025.03.12 |
UART (Universal Asynchronous Receiver Transmitter) 회로의 이 (0) | 2025.03.02 |
SPI (Serial Peripheral Interface) 회로 (0) | 2025.03.02 |
I2C 회로 및 동작 원리 (0) | 2025.03.02 |