VOC_Monitor/test/save_html.py

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()