상세 조회 직접 URL 접근 제거

This commit is contained in:
9700X_PC 2026-02-19 21:16:54 +09:00
parent 5ac6281195
commit c5f4623b02
1 changed files with 5 additions and 24 deletions

View File

@ -279,20 +279,14 @@ class VOCScraper:
try:
# 1. 목록에서 링크 찾기 시도
target_link = self.page.ele(f"css:a[href*='vocCode={voc_id}']", timeout=1)
navigated_directly = False
if target_link:
# 링크가 있으면 클릭
target_link.click()
else:
# 링크가 없으면 (페이지가 넘어갔거나 등) 직접 URL 이동 시도
# URL 패턴 추정: /voc/admin/view.jsp?vocCode={id}
# 주의: 세션이 유지되어야 함
direct_url = f"https://www.humetro.busan.kr/voc/admin/view.jsp?vocCode={voc_id}"
self.logger.info(f" -> 목록에서 링크 없음, 직접 이동 시도: {voc_id}")
self.page.get(direct_url)
navigated_directly = True
# 직접 URL 접근은 권한/컨텍스트 문제를 유발할 수 있어 금지
self.logger.debug(f" -> 목록에서 링크 없음, 상세 조회 스킵: {voc_id}")
return None
# 2. 상세 페이지 로딩 대기
# 성공 시 '질의내용' 텍스트 존재
@ -349,21 +343,8 @@ class VOCScraper:
else:
data["response_type"] = ""
# 복귀 (직접 이동했으면 뒤로가기 혹은 목록으로 이동)
if navigated_directly:
# 목록으로 명시적 이동보다는 뒤로가기가 안전할 수 있음
# 하지만 직접 이동했으므로 history.back()이 먹힐지 확인 필요.
# 일단 back() 시도
self.page.back()
# 만약 back() 후에도 여전히 view 페이지면 강제 목록 이동
if "view.jsp" in self.page.url:
# 목록 URL로 이동 (검색 조건 유지 안될 수 있음 주의)
# self.page.get("https://www.humetro.busan.kr/voc/admin/list.jsp?act=searchList")
# 일단 back 한번 더 시도해보고 안되면 둠 (다음 루프에서 처리)
pass
else:
self.page.back()
# 복귀
self.page.back()
time.sleep(0.5)
return data