Blackboard WebCrawling

gogori6565·2022년 5월 20일
0

Opensw-Basis-project

목록 보기
1/10
post-thumbnail

Blackboard WebCrawling 과정

1) 블랙보드 로그인 구현

2) 블랙보드 활동스트림 html 불러오기

3) 활동스트림 내용 가져오기

--(1) 제공예정/오늘/최근항목 구분해서 가져오기

  • 최근항목은 10개만

--(2) 성적 가져오기

  • 성적 / 만점성적 으로 가져오기
  • GUI 짤 때 활용도 높이기 위해 성적, 만점성적, 합친성적 세 개의 리스트로 따로 담기

--(3) 카테고리 구분하기

  • 해당 스트림 내용이 '과제, 공지사항,강의자료, 성적 중에 무엇인지
  • 스트림 내용 카테고리 별로 구분해서 넣은 리스트 생성

4) 공지사항 따로 불러오기

  • 스트림 내용으로는 공지사항이 짤리기 때문에 따로 들어가서 원문 불러오기

5) 슬랙 이용해 모바일 알람주기

  • 과제 마감 x시간 전에 슬랙봇으로 알람주기
  • 단, x시간 전 알람은 한 번만 주도록 한다
  • x시간 설정이 여러 개 일 수 있다. (사용자가 2시간 전, 1시간 전으로 두 개 정했다면 2시간 전에 한 번, 1시간 전에 한 번 알람을 주도록 한다)

전체 구상

● 변수이름

  • user_id : ID
  • user_pw : PW
  • login_stop : 로그인 예외처리 할 때 (while반복문에) 사용할 변수
  • category_index : 속성값 추출할 때 사용할 category의 index

[ 제공예정 ]

  • upc
    • upc_cours (list) : 제공예정 코스 이름
    • upc_title (list) : 제공예정 타이틀 내용

[ 오늘 ]

  • td
    • td_cours (list) : 오늘 코스 이름
    • td_title (list) : 오늘 타이틀 내용

[ 최근 항목 ]

  • pre
    • pre_cours (list) : 최근항목 코스 이름
    • pre_title (list) : 최근항목 타이틀 내용

[ 카테고리 ]

  • category (list) : 카테고리 (공지 사항, 성적, 과제, [ 프레젠테이션, 텍스트 문서, pdf ] = '강의자료‘)

[ 성적 ]

  • my_score (list) : 내 성적
  • max_score (list) : 만점 성적
  • score (list) : 내 성적 / 만점 성적

[ GUI카테고리 ] - 모든 변수 list

(GUI카테고리)_cours/title: 코스이름과 타이틀 내용 따로 담아서 가져올 것임

  • Notice_cours/title : 공지사항
  • Score_cours/title : 성적
  • Document_cours/title : 강의자료
  • Ass_cours/title : 과제 전체 (추가 + 마감예정)
  • AddAss_cours/title : 추가된 과제 (과제 추가됨 스트림)
  • DeadlineAss_cours/title : 마감예정과제

[ 마감기한 ]

  • deadline (list) : 마감기한

● 성적

for i in range(0,len([성적카테고리 리스트]):
성적카테고리리스트[i]+=성적리스트[i]

내 성적 : span[class="grade-input-display ready"]
만점 성적 : span[class="points-text"]

“내 성적 / 만점 성적” <= 이렇게 스트링으로 합치기
=>
성적리스트=[]
for i in range(0,len(내 성적 리스트)):
성적리스트[i]=내 성적[i]+만점성적[i] #이미 만점성적에 ‘/’ 존재

● category 구분

1) 속성값 추출
2) 제공 예정 제외 오늘, 최근항목 속성값 알아야함
3) 오늘, 최근항목의 요소들 과제/공지사항/강의자료/성적 으로 구분

카테고리 : 공지 사항, 성적, 과제, [ 프레젠테이션, 텍스트 문서, pdf, 여러 문서 ] = '강의자료‘

● deadline(마감기한)

1) class="content"의 하위태그들로 마감기한 전체 불러옴
2) [마감예정과제]리스트에 순서대로 매칭시키면 됨

● GUI카테고리 구분

GUI에 들어갈 카테고리 구분
공지사항 / 성적 / 마감예정과제 / 과제 / 강의자료 (마감예정과제 / 과제 는 다른 카테고리)

  • '제공예정'의 스트림은 전부 [마감예정과제]리스트로 가고
  • '오늘'의 스트림 중 마감예정과제가 있다면 [마감예정과제]리스트로 가고
  • '오늘'과 '최근항목'을 통틀어서 카테고리 분류를 해줘야함

category는 활동스트림의 처음 icon부터 끝까지 불러온 내용임
-> len(upc_cours) 개수만큼의 category 인덱스내용은 배제시키고 ('제공예정' 카테고리니까) 그 이후 인덱스부터 분류에 들어가야함
-> 이때, [마감예정과제]와 [과제]는 다른 리스트라고 했으므로! '오늘'에서 마감예정과제 스트림을 찾아 걔는 [마감예정과제]로 가는 예외를 고려해주고
-> 나머지는 category별로 잘 분류해서 GUI카테고리 리스트에 적절히 넣는다.

profile
p(´∇`)q

0개의 댓글