상세 조회 직접 URL 접근 제거
This commit is contained in:
parent
5ac6281195
commit
c5f4623b02
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue