From f24ff46b096ed9d2932a9d886957268cbb351b08 Mon Sep 17 00:00:00 2001 From: dhlim Date: Wed, 4 Feb 2026 01:05:59 +0000 Subject: [PATCH] =?UTF-8?q?=ED=81=AC=EB=A1=A4=EB=A7=81=20=EB=94=94?= =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=EB=A1=9C=EA=B7=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/utils/nvMapPwScraper.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/utils/nvMapPwScraper.py b/app/utils/nvMapPwScraper.py index cadc492..f54f380 100644 --- a/app/utils/nvMapPwScraper.py +++ b/app/utils/nvMapPwScraper.py @@ -1,6 +1,11 @@ import asyncio from playwright.async_api import async_playwright from urllib import parse +import time +from app.utils.logger import get_logger + +# 로거 설정 +logger = get_logger("pwscraper") class NvMapPwScraper(): # cls vars @@ -91,25 +96,41 @@ patchedGetter.toString();''') async def get_place_id_url(self, selected): count = 0 + get_place_id_url_start = time.perf_counter() while (count <= 1): title = selected['title'].replace("", "").replace("", "") address = selected.get('roadAddress', selected['address']).replace("", "").replace("", "") encoded_query = parse.quote(f"{address} {title}") url = f"https://map.naver.com/p/search/{encoded_query}" + + wait_first_start = time.perf_counter() await self.goto_url(url, wait_until="networkidle",timeout = self._max_retry/2*1000) + wait_first_time = (time.perf_counter() - wait_first_start) * 1000 + + logger.debug(f"[DEBUG] Try {count+1} : Wait for perfect matching : {wait_first_time}ms") + if "/place/" in self.page.url: return self.page.url + logger.debug(f"[DEBUG] Try {count+1} : url place id not found, retry for forced collect answer") + + wait_forced_correct_start = time.perf_counter() + url = self.page.url.replace("?","?isCorrectAnswer=true&") await self.goto_url(url, wait_until="networkidle",timeout = self._max_retry/2*1000) + + wait_forced_correct_time = (time.perf_counter() - wait_forced_correct_start) * 1000 + + logger.debug(f"[DEBUG] Try {count+1} : Wait for forced isCorrectAnswer flag : {wait_forced_correct_time}ms") if "/place/" in self.page.url: return self.page.url count += 1 - print("Not found url for {selected}") + logger.error("[ERROR] Not found url for {selected}") + return None # 404