58 lines
2.2 KiB
Python
58 lines
2.2 KiB
Python
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() |