Python 스마트 캠퍼스 자동 평가 새로운 버 전 실현

머리말
앞의 글 에서 스마트 캠퍼스 에 로그 인 하 는 인증 코드 처리 문제 가 언급 되 었 기 때문에 본 고 는 이 과정 을 생략 할 것 이다.로그 인 할 때 인증 코드 를 만 났 을 경우 참고 하 시기 바 랍 니 다이 글.사실 인증 코드 를 처음 사용 하면 브 라 우 저 에서 먼저 로그 인 한 다음 에 python 코드 로 아 날로 그 로그 인 을 하면 인증 코드 가 없어 집 니 다.CQCET 스마트 캠퍼스 인증 코드 팝 업 은 한정 조건 이 있 기 때 문 입 니 다!
준비 작업
가이드 백

import json
import requests
import uuid
from fake_useragent import UserAgent #     UserAgent
uid 와 UA 생 성

#     uuid
uuid = uuid.uuid4()
#   UA
headers = {'User-Agent': UserAgent().random}
2.스마트 캠퍼스 에 등록
이 과정 은 더 이상 군말 을 하지 않 고 코드 를 직접 올 려 라!

#       
def login():
    login_url = 'http://sso.cqcet.edu.cn/uaa/login_process'
    data = {'type': 1, 'deviceId': uuid, 'username': '19030****', 'password': 'xl*****5', 'img_code': ''}
    session = requests.session()
    session.post(url=login_url, headers=headers, data=data)
    return session
주:username:계 정 password:비밀번호
3.평가 와 교육 조작 을 실시한다.
1.평가 페이지 에 들 어가 관찰
교수 평가(학생)교학 평 가 를 클릭 하면 학생 들 이 교학 평가 페이지 를 볼 수 있 지만 실제 교학 평가 에 대응 하 는 사이트 가 아니 기 때문에 network 에서 진정한 교학 평가 페이지 에 대응 하 는 사 이 트 를 확인 해 야 한다.F12 에 따라 웹 페이지 를 검사 한 후에 다음 과 같은 절 차 를 진행 하면 진정한교수 평가 사이트을 발견 할 수 있다.
在这里插入图片描述
2,캡 처 평가 시 url 요청 동작 시작
마찬가지 로 이 교육 평가 페이지 는 F12 에 따라 개발 자 도 구 를 네트워크 란 으로 옮 긴 다음 에 한 수업 을 평가 하고 가 르 칩 니 다.그리고 평 가 를 하 는 url 요청 작업 을 발견 할 수 있 습 니 다.아래 그림 과 같 습 니 다!
在这里插入图片描述      
따라서 우 리 는 python 으로 같은 요청 조작 을 모 의 하면 평 가 를 완성 할 수 있 습 니 다!그러나 이것 은 data 를 휴대 해 야 하 는 post 요청 입 니 다.문제 가 생 겼 습 니 다.데 이 터 는 어디에서 가 져 와 야 합 니까?

#           data
advice:  
xh: 1903011753
xm: xue
kkdm: 
skjsjgh: 200720020
skjsmc:       
remark:  
year: 2020-2021
term: 2
weekLy:   
taskId: 202020*********08
부족 한 것 을 찾 으 면 add 아래 에 list 가 있 는 것 을 쉽게 발견 할 수 있 습 니 다.해당 url 에서 post 를 시작 하여 상기 필요 한 정 보 를 요청 할 수 있 습 니 다.
코드 구현:

#     
def evaluation(session):
    session.get(url='http://ossc.cqcet.edu.cn/xg/teaching/student/xskb')
    data = {'pageSize': '10', 'pageNum': '1', 'isAsc': 'asc', 'xnxq': '2020-2021-2', 'weekly': '16'
                                                                                               ''}
    eval_jsons = json.loads(session.post(url='http://ossc.cqcet.edu.cn/xg/teaching/student/xskb/list', data=data).text)

    add_data = {
        'evaluationProject': '[{"name": "       ?", "id": "teach_situation", "value": "5"},\
                              {"name": "       ?", "id": "learn_harvest", "value": "5"},\
                              {"name": "       ?", "id": "discipline", "value": "5"},\
                              {"name": "       ?", "id": "interaction", "value": "5"},\
                              {"name": "       ?", "id": "communicat", "value": "5"}]',
        'advice': ' ',
        'remark': ' ',
        'kkdm': ''
    }
    for eval_json in eval_jsons['rows']:
        isFlag = eval_json['complete']
        if isFlag:
            print(eval_json['skjsmc'] + '   《' + eval_json['kcmc'] + '》   !')

        else:
            add_data['xh'] = eval_json['xh']
            add_data['xm'] = eval_json['xm']
            add_data['skjsjgh'] = eval_json['skjsjgh']
            add_data['skjsmc'] = eval_json['skjsmc']
            add_data['year'] = eval_json['xn']
            add_data['term'] = eval_json['xq']
            add_data['weekLy'] = eval_json['weekly']
            add_data['taskId'] = eval_json['yxh']
            eval_add_url = 'http://ossc.cqcet.edu.cn/xg/teaching/student/teach/add'
            # print(session.get(url=eval_url).text)
            print(session.post(url=eval_add_url, data=add_data).text)
3.닥 친 문제
여기까지 끝 났 습 니 다.하지만 post 에서 url 에 게 가르침 을 청 했 을 때 저 는 실 패 했 습 니 다.{"msg":" :error parse new","code":500}로 돌아 가 곤 혹 스 러 웠 습 니 다.아무리 생각해 도 이해 가 되 지 않 았 습 니 다.마지막 으로 저 는 fiddler 로 가방 을 잡 고 브 라 우 저 post 요청 과 python 코드 가 시작 하 는 post 요청 의 차 이 를 비교 해 보 았 습 니 다.다음 그림 과 같 습 니 다.
在这里插入图片描述         
브 라 우 저 post 가 요청 할 때'evaluationProject'에 대응 하 는 value 값 이 목록 인 것 을 발견 할 수 있 습 니 다.한편,python 의 post 요청 시'evaluation Project'는 여러 개의 value 값 에 대응 합 니 다.원래 value 는 하나의 목록 이 어야 합 니 다.살 아 있 는 책 이 분리 되 었 습 니 다!당시 post 가 요청 한 데 이 터 는 이렇게 쓰 여 있 었 기 때문에 다음 과 같 습 니 다.

'evaluationProject': [{"name": "       ?", "id": "teach_situation", "value": "5"},
                                  {"name": "       ?", "id": "learn_harvest", "value": "5"},
                                  {"name": "       ?", "id": "discipline", "value": "5"},
                                  {"name": "       ?", "id": "interaction", "value": "5"},
                                  {"name": "       ?", "id": "communicat", "value": "5"}],
evaluationProject 를 하나의 목록 과 키 값 을 만 들 고 원인 을 찾 은 후에 이 목록 을 문자열 에 넣 고 싶 었 지만 잘못 보 고 했 습 니 다.문자열 이 줄 을 바 꾸 려 면 연결 문자 로 연결 해 야 한 다 는 것 을 잊 었 기 때문에 마지막 으로 아래 로 바 꿔 야 성공 할 수 있 습 니 다!

'evaluationProject': '[{"name": "       ?", "id": "teach_situation", "value": "5"},\
                              {"name": "       ?", "id": "learn_harvest", "value": "5"},\
                              {"name": "       ?", "id": "discipline", "value": "5"},\
                              {"name": "       ?", "id": "interaction", "value": "5"},\
                              {"name": "       ?", "id": "communicat", "value": "5"}]',
총화
이번에 자동 평 가 를 실현 하 는 것 은 어렵 지 않다.주로 세부 적 인 문제 들 이 나 를 오랫동안 괴 롭 혔 는데 역시 세부 적 인 것 이 성 패 를 결정 하 는 것 이다.저도 기억력 이 좋아 졌 습 니 다.python 에서 문자열 이 여러 줄 일 때\이 줄 을 사용 해 야 합 니 다!
파 이 썬 이 스마트 캠퍼스 자동 평 가 를 실현 하 는 새로운 버 전에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 스마트 캠퍼스 자동 평 가 는 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기