피드로 돌아가기
Dev.toFrontend
원문 읽기
HTML 테이블 파싱의 4가지 난제 — Virtual grid로rowspan 확장하기
How I Handle Nested Tables and Rowspans (The Hard Parts of HTML Table Parsing)
AI 요약
Context
HTML 테이블 파싱은 rowspan이 포함된 셀 처리 시 columns misalignment를 발생시킨다. Wikipedia infoboxes의 nested tables, nav rows, title rows, grouped headers 등의 구조가 실제 데이터 추출을 어렵게 만든다.
Technical Solution
- Virtual grid 생성 후 rowspan/colspan 셀을 대상으로 fill 수행
- isNestedTable() 함수로 table 조상 검사 후 top-level tables만 추출
- Wikipedia nav row 패턴(/^v\s+t\s+e\s/i 등) 매칭으로 데이터 행과 구분
- colspan이 전체 너비인 title row를 isTitleRow()로 필터링
- extractCellText()에서 nested table 제거 후 textContent 추출
Key Takeaway
DOM cell은 virtual grid를 populate하는 instruction일 뿐이다. 실제 데이터 구조는 virtual grid가 source of truth가 되어야 정확한 alignment를 보장한다.
실천 포인트
Complex rowspan/colspan 테이블에서 align된 데이터 추출 시 virtual grid 기반 expansion + pattern detection으로 nav rows 필터링 + nested tables flattening을 순차 적용하면 misalignment 없이 정확한 테이블 구조를复原할 수 있다.