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 에서 문자열 이 여러 줄 일 때
\
이 줄 을 사용 해 야 합 니 다!파 이 썬 이 스마트 캠퍼스 자동 평 가 를 실현 하 는 새로운 버 전에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 스마트 캠퍼스 자동 평 가 는 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.