이 코드는 DART 시스템에서 제공하는 보고서 HTML에서
BeautifulSoup과 정규표현식을 활용하여
회사명, 사업연도, 보고서 종류를 추출하는 간단한 파서입니다.
이전에는 XPath로 위치를 하드코딩했지만,
텍스트 기반 정제로 전환함으로써 더 유연하게 동작할 수 있게 되었습니다.
import requests
from bs4 import BeautifulSoup
import re
def parse_report_info(url):
html = requests.get(url).text
soup = BeautifulSoup(html, "html.parser")
text = soup.get_text()
# 공백 제거 + 줄 정리
lines = text.splitlines()
cleaned_lines = [line.strip() for line in lines if line.strip() != ""]
cleaned_text = "\n".join(cleaned_lines)
# 줄바꿈은 유지하고 스페이스/탭 제거
cleaned_text = re.sub(r"[ \t]+", "", cleaned_text)
# 보고서 종류
report_match = re.search(r"(분기보고서|반기보고서|사업보고서)", cleaned_text)
report_type = report_match.group(1) if report_match else "N/A"
# 사업연도
year_match = re.search(r"(20[0-9]{2})년", cleaned_text)
bsns_year = year_match.group(1) if year_match else "N/A"
# 회사명
corp_match = re.search(r"회\s*사\s*명\s*:\s*([가-힣㈜\w\s]+?)(?=\s*대\s*표|$)", cleaned_text)
corp_name = corp_match.group(1).strip() if corp_match else "N/A"
return {
"corp_name": corp_name,
"bsns_year": bsns_year,
"report_type": report_type
}
※ 이 코드는 예시일 뿐이며, 본문 전체 내용과 보고서 구조에 따라 정규식은 조정이 필요합니다 :)
'블로그+IT노하우' 카테고리의 다른 글
도메인 접속 문제 해결기 – www 없이 접속 안될 때! (0) | 2025.05.18 |
---|---|
[오늘의 일기]티스토리에 개인 도메인 연결하기 (7) | 2025.05.15 |
[파이썬 실험] RAG 개념과 GPT-3.5로 PDF 요약 실습하기 (6) | 2025.05.15 |
[구글 서치 콘솔 리디렉션 오류] 모바일 버전 URL 먼저 색인 등록하세요! (6) | 2025.05.09 |
[사전 안내] 티스토리 수익화 관련 운영 정책 변경 안내에 관하여 (4) | 2025.05.05 |