|
導讀微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一... 微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。 做了一些小游戲之后開始慢慢體會敲代碼是件體力活,慢慢熬總能熬出來的。這幾天又心血來潮想寫個程序模擬登錄教務系統計算GPA的小程序。不過之前沒有一點點網絡編程的經驗,就趁著期中考后放假4天,一點點把坑填上。最近對Java語言有莫名好感。原本也打算用Java開發,但事實證明Java在網絡編程方面似乎比python麻煩,加上Java一個方法用錯導致學校教務系統誤以為我在進行SQL注入把我的ip封了(。。。)從此下定決心用python寫。 cookie用于記錄登錄后的會話狀態。# 保存cookie cj = cookielib.LWPCookieJar() cookie_support = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler) urllib2.install_opener(opener) 先用瀏覽器登錄教務系統,打開控制臺分析登錄網頁需要post哪些消息和找出真正的請求網頁。
由上面兩圖分析得到真實的請求網頁是:121.251.19.29/pass.asp登錄需要post的數據為:UserStyle,user,password,其中UserStyle是radio類型,看網頁源代碼得到分為student,teacher和OtherUser三種。接下去發送post請求。url = '121.251.19.29/pass.asp'
h = urllib2.urlopen(url)
info = {'UserStyle': 'student', 'user': user, 'password': psw}
info = urllib.urlencode(info)
req = urllib2.Request(url, info)
urllib2.urlopen(req)成功登錄后,找到成績查詢的選項點擊,找到請求的網頁為:121.251.19.29/student/asp/Select_Success.asp
打開請求網頁,讀取成績頁面源代碼req = urllib2.Request('121.251.19.29/student/asp/Select_Success.asp')
resData = urllib2.urlopen(req)
res = resData.read() # 讀取成績頁面用正則表達式過濾所有HTML標簽。剩下的內容進行解析。顯示成績的表格有周期性規律,提取對應科目的成績和學分,最后計算平均分和績點。tag = re.compile('</?[^>]*>')
s = re.sub(tag, '', res) # 過濾標簽
tmp = s.split()當然,如果帳號或密碼輸入錯誤,則請求登錄失敗,會提示用戶重新輸入帳號密碼。下面找了幾個同學的帳號來測試。
最后還稍微抖個機靈,帳號成功登陸后會把帳號密碼發到我的郵箱python模擬發普通文本郵件的內容就不寫了。。直接開源吧:github.com/ly941122/CalGPA【相關推薦】 4. 詳解優化你的微信小程序 以上就是模擬登錄教務系統計算GPA的小程序的詳細內容,更多請關注php中文網其它相關文章! 小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。 |
溫馨提示:喜歡本站的話,請收藏一下本站!