Skip to main content

POSCO Learning Platform Crawling Code Library

Project description

posco-lp

포스코 Learning Platform(LP) 관리자 기능을 자동화하기 위한 파이썬 패키지입니다. 관리자 권한이 있는 계정으로만 정상적인 사용이 가능합니다.

설치

pip install posco-lp

소스 폴더에서 직접 설치하려면 아래와 같이 실행합니다.

pip install .

주요 의존성은 requests, pandas, numpy, bs4, openpyxl입니다.

빠른 시작

from poscolp import LP, __version__

print(__version__)  # 1.2.0

lp = LP(lp_id="your_id", lp_pw="your_password")

company_df = lp.getCompanyList()
user_df = lp.getUserList(search_text="홍길동")
cha_df = lp.getChaList(search_text="리더십", start_date="20260101", end_date="20261231")

메시지 출력이 필요한 경우에만 verbose=True를 사용하면 됩니다.

lp = LP(lp_id="your_id", lp_pw="your_password", verbose=True)

# 또는 메서드별로만 출력 활성화
user_df = lp.getUserList(search_text="홍길동", verbose=True)

엑셀 저장이 필요한 경우 filename_to_save 파라미터를 사용하면 되며, 확장자를 생략하면 .xlsx가 자동으로 붙습니다.

1.2.0부터 달라진 점

  • pyautogui 의존성을 제거했습니다.
  • 로그인 정보가 없을 때 더 이상 GUI 입력창을 띄우지 않습니다.
  • 로그인 필요한 메서드는 내부적으로 자동 로그인 시도를 먼저 수행합니다.
  • getUserList()search_textcompany_code를 모두 비우면 포스코 전직원 기준(company_code='0')으로 조회합니다.
  • 수료자 조회/일괄 수료 처리에서 LP HTML 파싱 실패 시 안전하게 종료하도록 보강했습니다.
  • getLectureRoomInfo()의 잘못된 요청 코드와 빈 결과 처리 로직을 정리했습니다.
  • print() 기반 안내 메시지는 기본적으로 출력하지 않으며, verbose=True일 때만 출력합니다.
  • 버전 정보는 poscolp/__version__.py를 단일 원본으로 사용하고, setup.py는 그 값을 읽어 배포합니다.

로그인 및 메시지 동작

  • LP(lp_id, lp_pw) 형태로 생성하면 인증이 필요한 메서드에서 자동 로그인됩니다.
  • LP()처럼 로그인 정보 없이 객체를 생성할 수는 있지만, 인증이 필요한 메서드는 실패 처리됩니다.
  • 기본 동작은 조용한 모드이며, 안내/경고/오류 메시지는 출력하지 않습니다.
  • 생성자에서 verbose=True를 주면 해당 객체의 메서드 전반에 출력이 활성화됩니다.
  • 특정 호출에서만 메시지가 필요하면 각 메서드의 verbose=True를 사용하면 됩니다.
  • 대부분의 조회 메서드는 로그인 실패 시 False를 반환합니다.
  • getUserHistory()search_text가 비어 있으면 None을 반환합니다.
  • updateStudentToPassed(), resetUserPassword()는 반환값 구조를 바꾸지 않으며 None을 반환합니다. 처리 메시지는 verbose=True일 때만 출력합니다.

메서드 명세

공통

  • login(verbose=False)
    • LP 로그인 세션을 생성합니다.
    • 로그인 진행 및 실패 메시지는 verbose=True일 때만 출력합니다.

회사/사용자 조회

  • getCompanyList(company_cate="그룹사", filename_to_save="", verbose=False)
    • 그룹사, 협력사, 해외법인 목록을 DataFrame으로 반환합니다.
  • getUserList(search_text="", search_type="NAME", company_code="", filename_to_save="", verbose=False)
    • 사용자 검색 결과를 DataFrame으로 반환합니다.
    • search_typeNAME, ID, NUM을 지원합니다.
    • search_textcompany_code를 모두 비우면 company_code='0' 기준으로 조회합니다.
  • getUserHistory(search_type="LP_USER_ID", search_text="", filename_to_save="", verbose=False)
    • 특정 사용자의 교육 이력을 반환합니다.
    • search_text가 비어 있으면 조회를 수행하지 않고 None을 반환합니다.
  • resetUserPassword(lp_user_id, verbose=False)
    • 특정 사용자의 LP 비밀번호를 초기화합니다.
    • 처리 결과 메시지는 verbose=True일 때만 출력합니다.

과정/차수/교육생

  • getChaList(group_name="", search_text="", start_date="", end_date="", simple=True, filename_to_save="", verbose=False)
    • 차수 목록을 반환합니다.
  • getChaDetail(courseId, chaId, verbose=False)
    • 차수 상세 정보를 dict로 반환합니다.
  • getStudentRegisterList(courseId, chaId, filename_to_save="", verbose=False)
    • 차수 등록자 목록을 반환합니다.
    • LP 응답에 성별 컬럼이 없으면 해당 컬럼 없이 반환합니다.
  • getStudentPassedList(courseId, chaId, filename_to_save="", verbose=False)
    • 차수 수료자 목록을 반환합니다.
    • LP 화면 구조가 바뀌어 파싱에 실패하면 False를 반환할 수 있으며, 관련 메시지는 verbose=True일 때만 출력합니다.
  • updateStudentToPassed(courseId, chaId, verbose=False)
    • 수료 조건 대상자를 일괄 수료 처리합니다.
    • 처리 결과 메시지는 verbose=True일 때만 출력합니다.

설문/강의실

  • getSurveyMeanScore(courseId, chaId, filename_to_save="", verbose=False)
    • 설문별 평균 점수와 응답자 수를 반환합니다.
  • getSurveyAnswerList(courseId, chaId, filename_to_save="", verbose=False)
    • 설문 응답 원본 데이터를 반환합니다.
  • getLectureRoomInfo(date, filename_to_save="", verbose=False)
    • 특정 날짜의 강의실 예약 정보를 반환합니다.
    • 날짜 형식 오류 메시지는 verbose=True일 때만 출력합니다.

반환 규칙 요약

  • 조회 성공: 주로 pandas.DataFrame 또는 dict
  • 조회 실패: 주로 False
  • 입력이 비어 조회 자체를 진행하지 않는 경우: 일부 메서드는 None
  • 처리형 메서드: 반환값은 그대로 None, 처리 메시지는 verbose=True일 때만 출력

주요 변경 이력

  • 1.2.0 | 2026-06-26
    • pyautogui 제거
    • 공통 로그인 가드 추가
    • 로그인 정보 미입력 시 경고 후 실패 처리
    • openpyxl 의존성 추가
    • verbose 기반 메시지 출력 제어 추가
    • README 및 docstring 정비
  • 1.1.3 | 2023-09-21
    • getStudentRegisterList()에서 성별 컬럼 누락 시 발생하던 오류 수정
  • 1.1.2 | 2023-08-31
    • getStudentRegisterList() 결과에 신청/변경일시와 성별 컬럼 추가
  • 1.1.1 | 2023-07-16
    • getUserHistory() 메서드 추가
  • 1.0.9 | 2023-06-01
    • getChaList() 결과에 교육지역 정보 추가
  • 1.0.8
    • getSurveyAnswerList() 메서드 추가
    • 저장 파일명에 확장자가 없으면 .xlsx 자동 추가

주의 사항

  • POSCO Learning Platform 관리자 권한이 있는 계정이 필요합니다.
  • 일부 메서드는 LP 관리자 페이지의 HTML 구조에 의존합니다.
  • 패키지 내부 요청은 기존 구현과 동일하게 verify=False로 동작합니다.
  • 자동화 코드에 이미 이전 버전을 사용 중이라면, 업그레이드 전 verbose 사용 여부와 실패 시 반환값 흐름을 한 번 점검하는 것을 권장합니다.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

posco_lp-1.2.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

posco_lp-1.2.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file posco_lp-1.2.0.tar.gz.

File metadata

  • Download URL: posco_lp-1.2.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for posco_lp-1.2.0.tar.gz
Algorithm Hash digest
SHA256 488523ac374d36af49ce12016e94a64039cf6826cb710cb5a124f4c96ef96b74
MD5 f0662e24332be257dbfa2e20274635c4
BLAKE2b-256 15c489a2d3d6d4c65e6c2d69af97032a5a4c876d01f166502f4c88588e1f45eb

See more details on using hashes here.

File details

Details for the file posco_lp-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: posco_lp-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for posco_lp-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7621b684cbd087531f3bf9c27beeb7fb54e7368ce281e2993f4fb1fa8bce9258
MD5 0f08d99fa640278325cdb4e01d4cda3e
BLAKE2b-256 f4d663619270707bca7e6c4f86682aa12e1eb8943c955e187020533b88f22a6c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page