docs: 260130 네이버 스타트업 헤드라인 중간 링크 파싱 수정 트러블슈팅

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Claude-51124 2026-01-30 09:42:31 +09:00
parent 7c2d1e1b96
commit 54e033bb03

View File

@ -0,0 +1,33 @@
# 네이버 스타트업 헤드라인 제목 중간 링크 파싱 누락 수정
**날짜**: 2026-01-30
**작성자**: happybell80
**관련 파일**: `skill_news/app/services/naver_startup_news_service.py`
---
## 문제 상황
- 깡프로 스타트업 뉴스 슬랙 전송 시 일부 항목이 "18. 화장품"처럼 짧게만 표시됨
- 원문에는 "18. 화장품 M&A 시장 볕 드나, 뷰티 큰손들 예의주시"인데, 제목 중간에 "M&A"가 링크(`<a>`)로 있어서 기존 로직은 span 한 개 텍스트만 사용 → 링크 뒤 제목이 누락됨
## 원인
- `extract_startup_headlines`: `^\d{1,2}\.\s+`에 맞는 span의 `get_text()`만 사용
- 제목이 "span(18. 화장품) + <a>M&A</a> + 텍스트(시장 볕 드나...)"로 나뉘어 있으면 span만으로는 링크 뒤 텍스트를 못 가져옴
## 해결 방안
- 부모에 "번호. " span이 **하나뿐**일 때만 **부모 전체 `get_text(separator=' ')`** 사용 → 중간 링크 텍스트도 제목에 포함
- 제목 끝에 붙은 URL 문자열은 제거 후 저장
- 그 외(부모에 번호 span이 여러 개)는 기존처럼 span 텍스트만 사용
## 구현 완료
- `skill_news` 레포: `naver_startup_news_service.py` 수정
- 테스트: 18번 항목 "18. 화장품 M&A 시장 볕 드나, 뷰티 큰손들 예의주시" 정상 추출 확인, 22개 항목 모두 비어 있지 않음
## 교훈
- 블로그 본문에서 제목이 여러 요소(span + 링크 + 텍스트)로 쪼개져 있으면, 한 span만 보지 말고 **부모 블록 단위**로 텍스트를 가져오면 중간 링크도 포함됨
- 부모에 번호 span이 하나일 때만 부모 텍스트 사용하면, 한 블록에 여러 항목이 섞인 경우 기존 동작 유지