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_text와company_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_type은NAME,ID,NUM을 지원합니다.search_text와company_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-26pyautogui제거- 공통 로그인 가드 추가
- 로그인 정보 미입력 시 경고 후 실패 처리
openpyxl의존성 추가verbose기반 메시지 출력 제어 추가- README 및 docstring 정비
1.1.3| 2023-09-21getStudentRegisterList()에서 성별 컬럼 누락 시 발생하던 오류 수정
1.1.2| 2023-08-31getStudentRegisterList()결과에 신청/변경일시와 성별 컬럼 추가
1.1.1| 2023-07-16getUserHistory()메서드 추가
1.0.9| 2023-06-01getChaList()결과에 교육지역 정보 추가
1.0.8getSurveyAnswerList()메서드 추가- 저장 파일명에 확장자가 없으면
.xlsx자동 추가
주의 사항
- POSCO Learning Platform 관리자 권한이 있는 계정이 필요합니다.
- 일부 메서드는 LP 관리자 페이지의 HTML 구조에 의존합니다.
- 패키지 내부 요청은 기존 구현과 동일하게
verify=False로 동작합니다. - 자동화 코드에 이미 이전 버전을 사용 중이라면, 업그레이드 전
verbose사용 여부와 실패 시 반환값 흐름을 한 번 점검하는 것을 권장합니다.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
488523ac374d36af49ce12016e94a64039cf6826cb710cb5a124f4c96ef96b74
|
|
| MD5 |
f0662e24332be257dbfa2e20274635c4
|
|
| BLAKE2b-256 |
15c489a2d3d6d4c65e6c2d69af97032a5a4c876d01f166502f4c88588e1f45eb
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7621b684cbd087531f3bf9c27beeb7fb54e7368ce281e2993f4fb1fa8bce9258
|
|
| MD5 |
0f08d99fa640278325cdb4e01d4cda3e
|
|
| BLAKE2b-256 |
f4d663619270707bca7e6c4f86682aa12e1eb8943c955e187020533b88f22a6c
|