피드로 돌아가기
I Spent a Weekend Fighting HTML Parsing. Here's What Finally Worked
Dev.toDev.to
AI/ML

LLM Structured Output 기반 HTML 파싱 효율 개선 및 85% 정확도 달성

I Spent a Weekend Fighting HTML Parsing. Here's What Finally Worked

zhongqiyue2026년 6월 10일5intermediate

Context

이커머스 사이트별로 상이한 HTML Markup 구조로 인한 데이터 추출의 복잡성 발생. CSS Selector, XPath, Regex 기반의 Rule-based 파싱 방식은 사이트 변경 시 유지보수 비용이 급증하며 데이터 누락률이 높은 한계 노출.

Technical Solution

  • HTML 구조 의존성을 제거하기 위해 Tag와 Script를 제외한 Raw Text만 추출하는 전처리 단계 도입
  • Pydantic 모델을 활용한 JSON Schema 정의로 LLM 응답의 타입 안정성 확보
  • OpenAI API의 Structured Output(beta.chat.completions.parse) 기능을 통한 비정형 텍스트의 정형 데이터 변환
  • GPT-4o-mini 모델 채택을 통한 비용 최적화 및 시맨틱 분석 기반의 데이터 정규화 구현
  • Markup 변경과 무관하게 텍스트 의미론적 일관성을 유지하는 Format Agnostic 아키텍처 설계

Impact

  • 데이터 추출 정확도 약 85% 달성 및 10%의 미세 오차 범위 기록
  • 페이지당 추출 비용 $0.001~$0.005 수준의 저비용 고효율 파이프라인 구축
  • 추출 지연 시간 페이지당 2~5초 소요

Key Takeaway

구조적 복잡성이 높은 비정형 데이터 추출 시, 개별 Rule을 정의하는 대신 데이터의 Semantics를 이해하는 LLM을 파싱 계층으로 배치하여 유지보수 비용을 획기적으로 낮추는 전략적 전환 가능


- 정형 API 부재 시 HTML 구조 분석 대신 Raw Text 기반 LLM 추출 검토 - LLM 응답의 신뢰성 확보를 위해 Pydantic 등 Schema Validation 도구 결합 - 비용 및 지연 시간 최적화를 위해 URL Hash 기반 Caching 계층 추가 - 정밀도가 필수적인 필드는 Regex와 LLM을 혼합한 Hybrid Pipeline 설계 - 데이터 민감도에 따라 Local LLM(Llama 3, Mistral) 대체 가능성 검토

원문 읽기