Skip to content

Commit 79d54e1

Browse files
committed
Merge remote-tracking branch 'origin/main' into deploy
2 parents a723f24 + 997d11e commit 79d54e1

5 files changed

Lines changed: 68 additions & 17 deletions

File tree

CHANGELOG.json

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,35 @@
11
{
22
"metadata": {
3-
"lastUpdated": "2026-01-18T12:31:21Z",
4-
"currentVersion": "1.0.1",
3+
"lastUpdated": "2026-01-18T12:51:13Z",
4+
"currentVersion": "1.0.2",
55
"projectType": "python",
6-
"totalReleases": 6
6+
"totalReleases": 7
77
},
88
"releases": [
9+
{
10+
"version": "1.0.2",
11+
"project_type": "python",
12+
"date": "2026-01-18",
13+
"pr_number": 17,
14+
"raw_summary": "## Summary by CodeRabbit\n\n# 릴리스 노트\n\n* **Chores**\n * 버전을 v1.0.2로 업데이트했습니다.\n * 문서를 최신 버전 정보로 업데이트했습니다.\n\n* **Bug Fixes**\n * 지도 데이터 수집 시 안정성을 개선했습니다.\n * 주소 추출 로직을 강화하고 더 견고한 오류 처리를 추가했습니다.",
15+
"parsed_changes": {
16+
"chores": {
17+
"title": "Chores",
18+
"items": [
19+
"버전을 v1.0.2로 업데이트했습니다.",
20+
"문서를 최신 버전 정보로 업데이트했습니다."
21+
]
22+
},
23+
"bug_fixes": {
24+
"title": "Bug Fixes",
25+
"items": [
26+
"지도 데이터 수집 시 안정성을 개선했습니다.",
27+
"주소 추출 로직을 강화하고 더 견고한 오류 처리를 추가했습니다."
28+
]
29+
}
30+
},
31+
"parse_method": "markdown"
32+
},
933
{
1034
"version": "1.0.1",
1135
"project_type": "python",

CHANGELOG.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
11
# Changelog
22

3-
**현재 버전:** 1.0.1
4-
**마지막 업데이트:** 2026-01-18T12:31:21Z
3+
**현재 버전:** 1.0.2
4+
**마지막 업데이트:** 2026-01-18T12:51:13Z
5+
6+
---
7+
8+
## [1.0.2] - 2026-01-18
9+
10+
**PR:** #17
11+
12+
**Chores**
13+
- 버전을 v1.0.2로 업데이트했습니다.
14+
- 문서를 최신 버전 정보로 업데이트했습니다.
15+
16+
**Bug Fixes**
17+
- 지도 데이터 수집 시 안정성을 개선했습니다.
18+
- 주소 추출 로직을 강화하고 더 견고한 오류 처리를 추가했습니다.
519

620
---
721

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# MapSee-AI
22

33
<!-- 수정하지마세요 자동으로 동기화 됩니다 -->
4-
## 최신 버전 : v0.1.3 (2026-01-18)
4+
## 최신 버전 : v1.0.1 (2026-01-18)
55

66
[전체 버전 기록 보기](CHANGELOG.md)
77

src/services/scraper/platforms/naver_map_scraper.py

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
네이버 지도 장소 스크래핑 로직
33
"""
44
import logging
5-
import asyncio
65
from urllib.parse import quote
76

87
from playwright.async_api import async_playwright
@@ -14,7 +13,6 @@
1413
parse_rating,
1514
extract_naver_place_id_from_url,
1615
SCRAPE_TIMEOUT_MS,
17-
PAGE_LOAD_WAIT_SEC,
1816
ELEMENT_WAIT_TIMEOUT_MS,
1917
MAX_IMAGE_COUNT,
2018
)
@@ -107,9 +105,8 @@ async def search_and_scrape(self, query: str) -> NaverPlaceInfo:
107105

108106
logger.info("첫 번째 결과 클릭 완료, 상세 페이지 로드 대기...")
109107

110-
# [5/7] 상세 페이지 로드 대기
108+
# [5/7] 상세 페이지 로드 대기 (entryIframe이 나타날 때까지)
111109
logger.info("[5/7] 상세 페이지 로드 대기...")
112-
await asyncio.sleep(PAGE_LOAD_WAIT_SEC)
113110

114111
# entryIframe 대기
115112
logger.info("entryIframe 대기...")
@@ -149,8 +146,22 @@ async def search_and_scrape(self, query: str) -> NaverPlaceInfo:
149146

150147
logger.debug(f"entry_frame URL: {entry_frame.url}")
151148

152-
# 추가 대기: DOM이 완전히 로드될 때까지
153-
await asyncio.sleep(2)
149+
# DOM 완전 로드 대기 (주소 요소가 나타날 때까지)
150+
try:
151+
await entry_frame.wait_for_selector('span.LDgIH', timeout=ELEMENT_WAIT_TIMEOUT_MS)
152+
except Exception:
153+
pass # 주소가 없는 장소도 있으므로 무시
154+
155+
# "찾아가는 길" 더보기 버튼 클릭 (전체 텍스트 펼치기)
156+
try:
157+
directions_expand_button = entry_frame.locator('a.xHaT3[aria-expanded="false"]')
158+
if await directions_expand_button.count() > 0:
159+
await directions_expand_button.first.click()
160+
# 펼쳐진 상태 대기
161+
await entry_frame.wait_for_selector('a.xHaT3[aria-expanded="true"]', timeout=2000)
162+
logger.debug("찾아가는 길 더보기 클릭 완료")
163+
except Exception as error:
164+
logger.debug(f"찾아가는 길 더보기 클릭 실패 (무시): {error}")
154165

155166
# iframe 내에서 JavaScript 실행
156167
info = await entry_frame.evaluate(f'''() => {{
@@ -204,8 +215,10 @@ async def search_and_scrape(self, query: str) -> NaverPlaceInfo:
204215
const subwayElement = document.querySelector('div.nZapA');
205216
result.subway_info = subwayElement ? subwayElement.textContent.trim() : null;
206217
207-
// 찾아가는 길
208-
const directionsElement = document.querySelector('span.zPfVt') ||
218+
// 찾아가는 길 (전체 텍스트 - 펼쳐진 상태 우선)
219+
const expandedDirections = document.querySelector('a.xHaT3[aria-expanded="true"] span.zPfVt');
220+
const directionsElement = expandedDirections ||
221+
document.querySelector('span.zPfVt') ||
209222
document.querySelector('.place_section_content .zPfVt');
210223
result.directions_text = directionsElement ? directionsElement.textContent.trim() : null;
211224

version.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@
3434
# - 버전은 항상 높은 버전으로 자동 동기화됩니다
3535
# ===================================================================
3636

37-
version: "1.0.1"
38-
version_code: 17 # app build number
37+
version: "1.0.2"
38+
version_code: 18 # app build number
3939
project_type: "python" # spring, flutter, react, react-native, react-native-expo, node, python, basic
4040
metadata:
41-
last_updated: "2026-01-18 12:29:56"
41+
last_updated: "2026-01-18 12:49:53"
4242
last_updated_by: "Cassiiopeia"
4343
default_branch: "main"
4444
integrated_from: "SUH-DEVOPS-TEMPLATE"

0 commit comments

Comments
 (0)