Python有哪些一千行左右的經典練手項目?
--2015年8月17日更新
佔個坑,準備寫下怎麼用Python處理懲罰cookies和調用體系下令行下令。
過幾天更新時預計已在紐黑文了。
--2015年8月9日更新
謝謝批評區的知友提示,布局HTTP包可以用requests庫,會簡便很多。這個庫的宣傳語也很風趣
Requests:HTTPforHumans
www.python-requests.org/不過requests庫並不是Python的自帶庫,利用前必要舉行安置。Windows或Linux用戶可以用pip舉行安置。(條件是電腦已裝過pip包辦理東西)
在下令行下輸入:
pipinstallrequests即可完成安置
有了requests後,布局POST懇求就方便得多。有了requests後,布局POST懇求就方便得多。
importrequestsusername="your_username"password="your_password"payload={"action":"login","username":username,"password":password,"ac_id":"3","type":"1","wbaredirect":"http://net.zju.edu.cn","mac":"undefined","user_ip":"","is_ldap":"1","local_auth":"1"}url="https://net.zju.edu.cn/cgi-bin/srun_portal"res=requests.post(url,data=payload)#printresponseprintres.text布局其他範例的HTTP懇求也很方便
importrequests#GETres=requests.get("http://www.baidu.com")#POSTres=requests.post("http://www.baidu.com")res=requests.delete("http://www.baidu.com")#PUTres=requests.put("http://www.baidu.com")---2015年7月8日更新
換成電腦答題,關於用Python寫學校無線登岸腳本的一些步調。
〇、查察登岸頁面的布局
以你和我學校為例:
一、用Chrome找到完成登岸操縱的數據包
在Chrome按下F12檢察元素,選擇netwrok選項,勾選生存日記(preservelog),由於有大概登岸告成後頁面產生跳轉,這時必要你和我生存日記。輸入用戶名暗碼後,單擊登岸。這時你會看到欣賞器向辦事器發送了一堆數據包:
(從上圖的暗碼框的長度來看,你和我能得出一個規律:步伐員的暗碼一樣平常都很長)
此中你和我必要找到包括用戶名暗碼的數據包,這個包最為關鍵,由於它完成了登岸操縱。上圖中紅框內的便是這個包。
一個本領,一樣平常包括用戶名暗碼的數據包都市以POST要領發送。由於它是欣賞器遞交數據至辦事器,並且是敏感信息,不該出如今url中。
從RESTHTTP的層面明白,它變動了辦事器的狀態。
二、闡發數據包的格局
你和我點開這個包,會看到formdata中出現了username,password欄位,這便是你和我想要的數據包。
在這個包的header中你和我也可以找到這個包的目標地點,截圖中沒有表現出來,它是:
三、用Python構建切合條件的數據包,發送到辦事器對應地點
直接上代碼了,重點是布局和第二步抓包得到的一樣的POST數據。
運行一次代碼,告成的話,會發明電腦已經能上彀了。
----原答案
私以為千行的Python算是大項目了吧,在學校里的話。著實看似大略的項目,深挖的話,可以實現的成果有很多。
要是題主是門生的話,可以寫寫學校無線的主動登錄腳本,著實核碼沒幾行,便是布局一個GET或POST懇求,發到驗證的地點就好。不但進步上彀服從,還能分享給校內的同硯們。
要是深挖這個技能的話……
必要用Chrome抓包(或其他抓包步伐),布局精確的request;
處理懲罰HTTP返回碼,處理懲罰非常(超時,暗碼錯誤,辦事器無法訪問等);
處理懲罰COOKIE【要是必要的話】;
讓步伐記取用戶暗碼,以供下次主動登錄的話,要用到資料庫存儲;
暗碼最好加密存儲,實現個AES吧;
AES的密鑰怎樣選取?各個用戶的密鑰別用一樣的,那獲取本機網卡的MAC地點;
索性把主動發明ZJUWLAN(你和我學校的wifi名),主動連接wifi,斷線重連也搞定了;
答主實現了以上的成果,代碼量才六七百行。
著實以此項目為底子,可以聞一知十。
破解其他同硯的wifi賬號,由於賬號名便是學號,暗碼暴力羅列。你會發明很多多少同硯的暗碼真的很脆弱。
還可以用腳本模仿欣賞器登錄網站,但有的網站必要輸圖片驗證碼,又必要寫模式辨認的代碼(不過宛如有現成的Python庫)。
有的網站被調和了,必要讓腳本掛上代理訪問,那就再加點代碼。
學無止境啊。
推薦閱讀:
※C語言基礎:函數的聲明與定義
※Malt開發實錄(一)不斷改變的設計
※如何實現feed流
※柯里化的前生今世(九):For Great Good
※如何編寫優質的API文檔?