"我去圖書館"搶座助手-python實現
- 寫在前面項目地址: RenjiaLu9527/igotolibrary典型的python使用requests模塊模擬操作實現搶座
- 正文
某天想找個有網有電,桌子還寬的自習室,轉了一圈跑到了圖書館,發現圖書館弄了個新的微信座位預訂系統,抓包一看,就有了此文;
其實關鍵代碼就一句話:
try: respone=rs.get(url,timeout=5,headers=mheaders,cookies=mcookies)except Exception as e: print(u"[E]: 確認選座出錯 %s"%repr(e)) else: #是預定成功 而不是 預訂成功 if (respone.status_code == 200) and ((respone.text.find("預定成功") > 0) or (respone.text.find("預定座位成功")>0)) : print(u"[I]: 搶座成功!-狀態碼:%5d"% (respone.status_code))
當時又正好看到一篇微信公眾號開發的文章,就順手把官網的樣例代碼稍加修改放在了伺服器上,測試確實可行;發了個朋友圈,等了幾天居然沒有一個人來使用。。尷尬之餘把代碼上傳到了github,又過了幾天,終於出現了第一位用戶,但是ta是來自bbmc的,也就是霸佔了 學習時長排行榜 全國排名的學校
不同學校的自習室編號、座位布局不同,抓包得到bbmc的自習室信息:
DICT_SCHOOL={ "1":{"ROOMVALUE":"176","SEATVALUE":R1_BMC}, "2":{"ROOMVALUE":"175","SEATVALUE":R2_BMC}, "RUNTIME":"06:30:00" }
來自bbmc的同學無法使用我部署到公眾號的服務,於是重新修改了下後台代碼,測試發現bbmc的圖書館搶座需要驗證碼,於是轉而寫了個實時撿漏的搶座腳本:每隔幾秒刷新座位列表,有空位就搶座;所以現在公眾號能提供的服務為bbmc的座位實時撿漏,bjtu的20:00搶座。
代碼略長就不貼在這裡了,詳情看文章開頭的github
微信後台處理流程圖:
定點搶座流程圖:
介紹,有什麼想說的請留言。
- 參考文章
快速上手 — Requests 2.18.1 文檔 python爬蟲從入門到放棄(六)之 BeautifulSoup庫的使用 使用Charles進行HTTPS抓包
推薦閱讀:
※python開發一個項目要怎麼做?
※Python 里沒有介面,如何寫設計模式?
※Matlab, R, Python關於向量化計算和for循環的速度比較?
※在matlab2015a中如何調用python?
TAG:Python |