版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Python實(shí)現(xiàn)智慧校園自動(dòng)評(píng)教全新版因?yàn)榍懊娴奈恼轮幸呀?jīng)涉及到了登錄智慧校園的驗(yàn)證碼處理問題,所以本文將略過此過程。如登錄時(shí)遇到驗(yàn)證碼的情況,請(qǐng)參考此文。其實(shí)第一次使用有驗(yàn)證碼的話,可以在瀏覽器先登錄一次,然后再使用python代碼模擬登錄,驗(yàn)證碼就沒了。因?yàn)镃QCET智慧校園驗(yàn)證碼彈出是有限定條件的!
一、準(zhǔn)備工作
導(dǎo)包
importjson
importrequests
importuuid
fromfake_useragentimportUserAgent#隨機(jī)生成UserAgent
生成uuid和UA
#隨機(jī)生成uuid
uuid=uuid.uuid4()
#隨機(jī)UA
headers={'User-Agent':UserAgent().random}
二、登錄智慧校園
此過程不再做過多的贅述,直接上代碼吧!
#登錄智慧校園
deflogin():
login_url='/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)
returnsession
注:username:賬號(hào)password:密碼
三、進(jìn)行評(píng)教操作
1、進(jìn)入評(píng)教頁面觀察
從教學(xué)評(píng)價(jià)(學(xué)生)教學(xué)評(píng)價(jià)點(diǎn)擊學(xué)生雖然能夠看到教學(xué)評(píng)價(jià)頁面但是并非真的教學(xué)評(píng)價(jià)對(duì)應(yīng)的網(wǎng)址,故而需要在network中查看真正的教學(xué)評(píng)價(jià)頁面對(duì)應(yīng)的網(wǎng)址。按F12檢查網(wǎng)頁,然后進(jìn)行如下圖步驟的操作,就可以發(fā)現(xiàn)真正的教學(xué)評(píng)價(jià)網(wǎng)址了。
2、抓取評(píng)教時(shí)發(fā)起url請(qǐng)求操作
同樣在此教學(xué)評(píng)價(jià)頁面按F12調(diào)出開發(fā)者工具轉(zhuǎn)至Network那一欄,然后對(duì)一節(jié)課進(jìn)行評(píng)教。然后你會(huì)發(fā)現(xiàn)進(jìn)行評(píng)教的url請(qǐng)求操作,如下圖所示!
因此我們只需要用python模擬出同樣的請(qǐng)求操作就可以完成評(píng)教了!但是這個(gè)是個(gè)需要攜帶data的post請(qǐng)求,那么問題來了,數(shù)據(jù)該從那兒去獲取呢?
#以下為部分所需攜帶的data
advice:無
xh:1903011753
xm:xue
kkdm:
skjsjgh:200720020
skjsmc:上課老師姓名
remark:無
year:2025-2025
term:2
weekLy:周次
taskId:202520*********08
缺什么就去找什么,很容易發(fā)現(xiàn)在add的下面有一個(gè)list??梢云鋵?duì)應(yīng)的url發(fā)起post請(qǐng)求獲取上述所需信息。
代碼實(shí)現(xiàn):
#評(píng)教頁面
defevaluation(session):
session.get(url='/xg/teaching/student/xskb')
data={'pageSize':'10','pageNum':'1','isAsc':'asc','xnxq':'2025-2025-2','weekly':'16'
eval_jsons=json.loads(session.post(url='/xg/teaching/student/xskb/list',data=data).text)
add_data={
'evaluationProject':'[{"name":"老師教得怎么樣","id":"teach_situation","value":"5"},\
{"name":"學(xué)習(xí)收獲怎么樣","id":"learn_harvest","value":"5"},\
{"name":"紀(jì)律管理怎么樣","id":"discipline","value":"5"},\
{"name":"課堂互動(dòng)怎么樣","id":"interaction","value":"5"},\
{"name":"課后交流怎么樣","id":"communicat","value":"5"}]',
'advice':'無',
'remark':'無',
'kkdm':''
foreval_jsonineval_jsons['rows']:
isFlag=eval_json['complete']
ifisFlag:
print(eval_json['skjsmc']+'老師的《'+eval_json['kcmc']+'》已評(píng)價(jià)!')
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='/xg/teaching/student/teach/add'
#print(session.get(url=eval_url).text)
print(session.post(url=eval_add_url,data=add_data).text)
3、遇到的問題
到這就已經(jīng)結(jié)束了,但是在post請(qǐng)求請(qǐng)教url時(shí)我一直失敗,返回{"msg":"運(yùn)行時(shí)異常:errorparsenew","code":500},讓我困惑不已,百思不得其解。最后我用fiddler抓包,對(duì)比了一下瀏覽器post請(qǐng)求與python代碼發(fā)起的post請(qǐng)求的區(qū)別,如下圖所示:
你會(huì)發(fā)現(xiàn)瀏覽器post請(qǐng)求時(shí)'evaluationProject'對(duì)應(yīng)的value值為一個(gè)列表。而python的post請(qǐng)求時(shí),'evaluationProject'對(duì)應(yīng)多個(gè)value值,本來value應(yīng)是一個(gè)列表的,活生生的本拆散了!因?yàn)楫?dāng)時(shí)post請(qǐng)求攜帶的數(shù)據(jù)是這么寫的,如下所示:
'evaluationProject':[{"name":"老師教得怎么樣","id":"teach_situation","value":"5"},
{"name":"學(xué)習(xí)收獲怎么樣","id":"learn_harvest","value":"5"},
{"name":"紀(jì)律管理怎么樣","id":"discipline","value":"5"},
{"name":"課堂互動(dòng)怎么樣","id":"interaction","value":"5"},
{"name":"課后交流怎么樣","id":"communicat","value":"5"}],
直接讓evaluationProject與一個(gè)列表形成鍵值對(duì),找到原因之后我就想把這個(gè)列表放在字符串中,但是還是報(bào)錯(cuò)。因?yàn)槲彝?,一個(gè)字符串換行需要用續(xù)行符連接,最后改成下面那樣才算成功!
'evaluationProject':'[{"name":"老師教得怎么樣","id":"teach_situation","value":"5"},\
{"name":"學(xué)習(xí)收獲怎么樣","id":"learn_harvest","value":"5"},\
{"name":"紀(jì)律管理怎么樣","id":"discipline","value":"5"},\
{"name":"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年宣城郎溪縣人民醫(yī)院公開招聘勞務(wù)派遣人員2名筆試模擬試題及答案解析
- 2026中國安能科工管理技術(shù)崗位招聘考試備考題庫及答案解析
- 2026漢中腦安康復(fù)醫(yī)院見習(xí)崗位招聘考試備考試題及答案解析
- 2026貴州烏當(dāng)區(qū)水務(wù)管理局公益性崗位招聘1人考試備考試題及答案解析
- 2026云南昆明市昆華實(shí)驗(yàn)中招聘10人考試參考題庫及答案解析
- 2026天津市中天天杰招聘考試參考試題及答案解析
- 2026年1月南平武夷山職業(yè)學(xué)院人才招聘32人筆試參考題庫及答案解析
- 2026年常州機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考題庫帶答案解析
- 2026年赤大白鐵路工務(wù)段招聘?jìng)淇碱}庫及參考答案詳解1套
- 蘭州大學(xué)口腔醫(yī)院2026年招聘?jìng)淇碱}庫完整參考答案詳解
- 面板堆石壩面板滑模結(jié)構(gòu)設(shè)計(jì)
- 無人機(jī)裝調(diào)檢修工培訓(xùn)計(jì)劃及大綱
- 國家開放大學(xué)《森林保護(hù)》形考任務(wù)1-4參考答案
- GB 31604.1-2023食品安全國家標(biāo)準(zhǔn)食品接觸材料及制品遷移試驗(yàn)通則
- GB/T 3683-2023橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強(qiáng)液壓型規(guī)范
- 殯葬服務(wù)心得體會(huì) 殯儀館工作心得體會(huì)
- 電力線路維護(hù)檢修規(guī)程
- 春よ、來い(春天來了)高木綾子演奏長(zhǎng)笛曲譜鋼琴伴奏
- ARJ21機(jī)型理論知識(shí)考試題庫(匯總版)
- GB/T 4623-2014環(huán)形混凝土電桿
- GB/T 32065.4-2015海洋儀器環(huán)境試驗(yàn)方法第4部分:高溫試驗(yàn)
評(píng)論
0/150
提交評(píng)論