from DrissionPage import ChromiumPage, ChromiumOptions
import time

def save_target_html():
    # 1. 사용자 계정 설정 (여기에 실제 아이디/비번을 입력하고 실행하세요)
    USER_ID = "116696"
    USER_PW = "dnsdydtlf1!"

    # 2. 브라우저 설정
    co = ChromiumOptions()
    # SSL 에러 무시 (사내망 필수)
    co.set_argument('--ignore-certificate-errors')
    # 디버깅을 위해 처음에는 헤드리스를 끄고(False) 화면을 보면서 동작을 확인하세요.
    co.headless(False) 
    
    page = ChromiumPage(co)

    try:
        # 1. 로그인 페이지 접속
        print(">>> 로그인 페이지 이동 중...")
        page.get("https://www.humetro.busan.kr/voc/admin/login_admin.jsp")

        if page.ele("css:input[name='userID']", timeout=5):
            page.ele("css:input[name='userID']").input(USER_ID)
            page.ele("css:input[name='password']").input(USER_PW)
            page.ele("css:div.btn").click()
        else:
            print("로그인 페이지 로딩 실패")
            return

        print("\n" + "="*50)
        print("✅ 로그인이 완료되었습니다.")
        print("⚠️  브라우저에서 직접 마우스로 메뉴를 클릭해서 [목록]을 띄워주세요.")
        print("⚠️  목록에 글 내용이 보이면, 이 콘솔창에서 [Enter] 키를 누르세요.")
        print("="*50 + "\n")

        # 2. 사용자가 수동으로 이동할 때까지 대기
        input(">>> 목록이 정상적으로 보이면 여기를 클릭하고 엔터를 누르세요...")

        # 3. HTML 저장
        if page.ele("tag:table"):
            html_content = page.html
            with open("list_page.html", "w", encoding="utf-8") as f:
                f.write(html_content)
            print(f"\n[성공] 현재 화면의 HTML을 'list_page.html'로 저장했습니다.")
        else:
            print("[실패] 테이블을 찾을 수 없습니다.")

    except Exception as e:
        print(f"[에러] {e}")

    finally:
        # 확인을 위해 브라우저를 바로 닫지 않고 싶으면 아래 줄 주석 처리
        # page.quit()
        pass

if __name__ == "__main__":
    save_target_html()